【发布时间】:2018-07-19 08:41:36
【问题描述】:
我正在使用 this tutorial 在我的 Angular 1.5 应用中实现发送/接收广播消息。
所以在控制器里面我有这个:
update(){
this.$rootScope.$broadcast('language_changed');
}
在另一个控制器中我得到了这个:
$rootScope.$on('language_changed', function (event, data){
this.updateStore(); <--- this here is undefined
});
}
updateStore() {
this.store = {
..
language_id: this.LanguageService.get(),
}
}
我想知道如何在广播中获取this。 This trick 没用
【问题讨论】:
-
是否为上下控制器。你能把你的控制器代码和 HTML 放在控制器定义的地方吗?
-
查看链接教程。考虑到我使用的是 $rootScope,控制器相对于彼此的放置是无关紧要的
-
在没有这个的情况下尝试 updateStore()
-
是的,我应该这样认为,因为当您向上调用事件时,您应该使用 $emit,而当您向下调用事件时,您应该使用 $broadcast。
-
看答案的人
标签: javascript angularjs eventemitter angular1.6