javascript - 是否有 Angular 的事件发布/订阅框架?

标签 javascript c# angularjs wpf publish-subscribe

我有 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/

相关文章:

javascript - 将每个字母替换为另一个字母

javascript - 为什么 window.scrollTo() 在页面加载时不起作用?

javascript - 在javascript php中隐藏可见的div并显示另一个div?

c# - SQL 查询中的 {0},{1},{2},{3} 是什么

javascript - AngularJS $q.all,无论错误如何触发

javascript - 调整悬停时内容的垂直对齐方式

c# - 我可以在一行代码中读取一个数组吗?

c# - 如何使用 C# 按文件名中的日期对文件进行排序?

angularjs - nodejs + multer + angularjs 无需重定向即可上传

javascript - 范围错误: Maximum call stack size exceeded (Angular)