【问题标题】:child component doesn't get its parent's triggered event子组件没有得到其父组件的触发事件
【发布时间】:2017-08-19 21:04:28
【问题描述】:

我关注了这个post

我有一个父组件,其中包含(并且它被称为):

$scope.$broadcast('searchNoFilter');

和一个包含(并且被称为)的子组件:

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

父级触发该事件, 但是没有调用孩子的$on 身体。

我错过了什么?

【问题讨论】:

  • 没有足够的信息来真正说明,发布更多代码,制作一个 MVCE/plunk。
  • @georgeawg 我认为你是对的。但是模型有什么帮助呢?孩子会在那个型号的手表上游泳吗?
  • 最有可能正在广播的事件发生在侦听器附加到子组件范围之前。最好避免广播事件。让父元素中的事件修改父元素中的模型值。使用单向< 绑定,将父模型值绑定到子范围。无论何时实例化子组件,模型值都会持续存在并且可用。事件是短暂的,可能会被错过。

标签: javascript angularjs


【解决方案1】:

Broadcastemit 以不同的方式工作。广播向子作用域发送事件,同时向父作用域发送事件。很可能你错过了。如果您从rootScope 广播,这应该可以工作。

查看详情herehere

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 2020-04-16
      • 2018-09-01
      • 1970-01-01
      • 2020-04-15
      • 2020-08-07
      • 2020-10-06
      • 2020-04-19
      相关资源
      最近更新 更多