我有一个按钮可以更改"活动"州。首先,它从服务器加载状态
<button active="data.active" ng-click="changeStatus()"></button>
指令代码:
app.directive('active', function() {
return {
restrict: 'A',
templateUrl: 'whatever.html',
scope: {
active: '='
},
link: function($scope, elem, attrs) {
$scope.changeStatus = function() {
// Actually I'm doing this, it works fine
var value = !$scope.active;
$scope.$parent.MethodWhoChangesState(value, function(response) {
// I need to change the button state here
});
}
}
}
})
它有效,但我认为我不尊重&#34;棱角分明的规则&#34; ......
有更好的方法吗?
答案 0 :(得分:0)
通常,您只需在点击处理程序中更新$ scope变量。如果你需要处理“活跃”的情况。状态更改,您可以设置$ watch:
app.directive('active', function() {
return {
restrict: 'A',
templateUrl: 'whatever.html',
scope: {
active: '='
},
link: function($scope, elem, attrs) {
// if you need to run custom code whenever the 'active' state changes
// you can set up a $watch
$scope.$watch('active', function(isActive) {
if(isActive) {
...
}
else {
...
}
});
$scope.changeStatus = function() {
$scope.active = !$scope.active;
}
}
}
})