我試圖從控制器監視服務中的更改。我基於許多qns在stackoverflow上嘗試了各種各樣的東西,但我一直無法使它工作。AngularJS觸發器和從控制器服務中監視對象值的變化
HTML:
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<div ng-click="setFTag()">Click Me</div>
</div>
</div>
的javascript:
var myApp = angular.module('myApp',[]);
myApp.service('myService', function() {
this.tags = {
a: true,
b: true
};
this.setFalseTag = function() {
alert("Within myService->setFalseTag");
this.tags.a = false;
this.tags.b = false;
//how do I get the watch in MyCtrl to be triggered?
};
});
myApp.controller('MyCtrl', function($scope, myService) {
$scope.setFTag = function() {
alert("Within MyCtrl->setFTag");
myService.setFalseTag();
};
$scope.$watch(myService.tags, function(newVal, oldVal) {
alert("Inside watch");
console.log(newVal);
console.log(oldVal);
}, true);
});
如何拿到手錶的控制器來觸發?
見我的答案在問題[這裏](http://stackoverflow.com/問題/ 20623715 /角手錶不 - 不任何火災事件 - 在 - 我 - 指令/ 20623766#20623766)。你的'watch'函數中的語法不是你想要的,但它仍然是有效的角度語法,這就是爲什麼你沒有得到日誌錯誤。 – Hylianpuffball