试试这个:
<button class="btn btn-primary subscribe-btn" ng-click="isSubscribed ? unsubscribe() : subscribe()" >
<span ng-show="isSubscribed">Subscribe</span><span ng-hide="isSubscribed">Unubscribe</span>
</button>
这将调用正确的功能,并显示正确的文本,具体取决于isSubscribed
。
然而,一个更清洁的选择是在控制器来处理这个问题,造成这样的HTML:
<button class="btn btn-primary subscribe-btn"
ng-controller="ButtonController"
ng-click="toggleSubscribe()" >
{{subscribeButton}}
</button>
只是取决于用户是否订阅设置按钮的文字:
app.controller('ButtonController', ['$scope', function($scope) {
$scope.subscribed = false;
$scope.subscribeButton = $scope.subscribed ? 'Unsubscribe' : 'Subscribe';
$scope.toggleSubscribe= function() {
$scope.subscribed = !$scope.subscribed; // Handle subscription...
};
}]);
现在,更妙的是通过创建一个custom element directive使用模板:
app.directive('subscribeButton', function() {
return {
templateUrl: 'subscribe-button.html'
};
});
更好的解决方案真的会在你的控制器中设置的状态和调用的方法管理这个逻辑改为点击按钮! – TheRodeo