好吧,我知道這不是一個好的做法,把一個監視器內的控制器,但在這種情況下,我怎麼能避免使用監視器?如何避免在我的控制器中使用觀察者?
ps:$ rootcope它不是一個選項好嗎?
這裏是代碼:
編輯 - 在這裏我做了什麼: plunker
這裏是js代碼:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, mainService) {
var flag = false;
$scope.btn = function() {
flag = !flag;
mainService.setData(flag);
}
});
app.controller('DemoOneCtrl', function($scope, mainService) {
$scope.name = 'World';
$scope.mainService = mainService;
$scope.show = false;
$scope.$watch('mainService.getData()', function (data) {
$scope.show = data;
});
});
app.service('mainService', function() {
var data = false;
this.setData = function (str) {
data = str;
};
this.getData = function() {
return data;
};
});
和HTML:
<div ng-controller="MainCtrl">
<button ng-click="btn()">GO!</button>
</div>
<div ng-controller="DemoOneCtrl">
<p ng-show="show">Hello World</p>
</div>
它最好能夠在這裏添加代碼,例如,該服務可以在任何時刻消失。 – Makoto