我有 WPF 背景,在 Prism 中有 IEventAggregator 接口(interface)。您定义可以从 Controller 订阅的事件,然后从另一个 Controller 发布该事件。这是一种在彼此不了解的 Controller 之间进行通信的方式。
Angular JS 中有类似的东西吗?
即我有一个用于index.html 页面的顶级 Controller ,其中包含三个子面板,每个子面板都有自己的 Controller 。我希望顶级 Controller 能够在面板 Controller 上调用刷新(),但它没有引用这些 Controller 。
最佳答案
我认为您可以使用 $scope.$broadcast 将操作发送给子 Controller ;
发送数据后
$scope.$broadcast('customEvent', {
command: 'reload'
});
您可以在子 Controller 中设置监听器
$scope.$on('customEvent', function (event, data) {
if(data === 'reload'){
//reload
}
});
很好的解释在这里: http://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/
关于javascript - 是否有 Angular 的事件发布/订阅框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33958805/