【发布时间】:2016-05-10 07:54:31
【问题描述】:
我的项目有闲置设置:
- mainApp 主 Angular 模块,包含 EventBus 工厂
- app1 第一个注入 mainApp 的模块
- 注入 mainApp 的 app2 第二个模块
app1和app2是放在同一个页面的两个模块,都注入了mainApp。
我正在尝试使用在 mainApp 中定义的 EventBus 工厂在 app1 和 app2 之间进行通信。 不幸的是,我无法让它工作(app1 没有捕获 app2 事件,反之亦然)。
我应该如何解决这个问题?我是否采取了错误的方法?
EventBus.subscribe("App1Ctr.event", function (event, data) {
console.log("App2handler");
$scope.name = data.newVal;
});
$scope.fireEvent = function () {
EventBus.broadcast("App2Ctr.event", {"newVal": "App2Ctr"});
};
这是plnkr
【问题讨论】:
-
您能否添加一些细节,例如:1)您的预期输出/行为是什么? 2) 什么是当前输出/行为?
-
@KhalidHussain 预期输出:我有几个模块并希望它们都监听从一个主(注入)模块发送的事件。当前输出 - 在 app1 和 app2 中都没有捕获到任何事件
-
您能否在您的 plnkr 中添加一个
console.log并打印当前输出? -
更新了这个 plunker plnkr.co/edit/ZpdmdOvHve3y0OsF2nON?p=preview 看起来广播已正确启动,但订阅不起作用。
-
再多一点信息,指定一个
console log,其中当前输出错误并提及您的预期输出。如果您edit将所有信息都放入您的问题中会更好。
标签: angularjs events broadcast emit