在我的控制器中,我使用ng-click
将变量设置为true。
在我的指令中,当变量为真时,我需要评估一些东西。随后,我通过我的指令将变量设置为false。
但是,我的问题是,我似乎无法让$watch
从ng-click
函数触发。
我已经包含了我的问题的示例小提琴。如您所见,$watch
最初在加载页面时在控制台中记录了true
。当我点击指令使其成为false
时,$watch
也会触发并记录false
。然而,随后对ng-click
按钮的点击不会导致$watch
开火。为什么是这样?
http://jsfiddle.net/zcouyvwc/2/
var app = angular.module('myApp', []);
function MyCtrl($scope,$timeout) {
$scope.boolean = true;
$scope.setToTrue = function() {
$timeout(function(){$scope.boolean = true;});
};
}
app.directive("someDirective",['$timeout',function($timeout) {
return {
restrict:"A",
scope:true,
link: function(scope, element, attrs) {
scope.$watch("boolean", function() {
console.log(scope.boolean);
});
element.bind('click',function(){
$timeout(function(){
scope.boolean = false;
});
});
}
}
}]);
aaaaahhhhhhhhh我之前有过这个问题,经过几个小时的研究,我纠正了它。我没有意识到它又是同样的问题..... dohh!感谢您注意到这一点! – 2014-10-08 07:11:19