我的项目的一部分是组件B 与this.functionName = function(){};
,在组件A 内。
两个组件都有不同的控制器(控制器)
在控制器组件A 中,创建了如下函数:
ng-click
在事件$watch
发生时调用。
问题的实质:
与组件B 的控制器一样,每次调用此功能(控制器A)时,都要执行一些操作?
我想我可以某种方式使用$scope.$parent.$parent.$watch;
,但我想做的不像{{1}}
答案 0 :(得分:0)
作为使用角度事件系统的替代方法,您可以使用服务来共享组件之间的状态。
以下是的示例(我在此忽略了最佳做法,缩短了示例):
app.service('myService', function(){
var service = this;
service.items = [];
service.addItem = function(newItem){
service.items.push(newItem);
}
});
app.component('cmpA', {
template: [
'<ul>',
'<li ng-repeat="item in $ctrl.items track by $index">{{item}}</li>',
'</ul>'
].join(''),
controller: function(myService){
this.items = myService.items;
console.log(this.items);
}
});
app.component('cmpB', {
template: [
'<div>',
'<input ng-model="$ctrl.newItem" /><button type="button" ng-click="$ctrl.save()">Save</button>',
'</div>'
].join(''),
controller: function(myService){
this.newItem = '';
this.save = function(){
myService.addItem(this.newItem);
this.newItem = '';
}
}
});
You can see it in action in this plunker.
希望这是你需要的东西。