我来自WPF背景,在Prism中你有IEventAggregator接口。您可以定义可以从控制器订阅的事件,然后从另一个控制器发布该事件。这是一种在彼此不了解的控制器之间进行通信的方法。
Angular JS中有类似的东西吗?
即我有一个index.html页面的顶级控制器,它包含三个子面板,每个子面板都有自己的控制器。我希望顶级控制器能够在面板控制器上调用refresh(),但它没有引用这些控制器。
答案 0 :(得分:0)
我认为你可以使用$ scope。$ broadcast向儿童控制人员发送行动;
按
发送数据后$scope.$broadcast('customEvent', {
command: 'reload'
});
你可以在子控制器中设置监听器
$scope.$on('customEvent', function (event, data) {
if(data === 'reload'){
//reload
}
});
这里有很好的解释: http://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/