子组件未获得其父级触发事件

时间:2017-08-19 21:04:29

标签: javascript angularjs

我已遵循此post

我有一个包含(并且它被调用)的父组件:

$scope.$broadcast('searchNoFilter');

和包含(并且它被调用)的子组件:

$scope.$on('searchNoFilter', function(e) {
    self.search();
});

父母触发该事件, 但是孩子的$on身体并没有被召唤。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

Broadcastemit以不同的方式运作。广播向子范围发送事件,同时向父母发送。很可能你错过了。如果你从rootScope广播,这应该可行。

详情请参阅here here

答案 1 :(得分:0)

广播事件很可能是在侦听器附加到子组件范围之前发生的。最好避免广播事件。父元素中的事件是否修改父元素中的模型值。使用单向<绑定将父模型值绑定到子组件范围。无论何时实例化子组件,模型值都会持续存在并且可用。事件是短暂的,可能会错过。