私はコントローラからのサービスの変更を監視しようとしています。私はstackoverflow上の多くのqnsに基づいていろいろ試しましたが、私はそれを動作させることができませんでした。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