javascript - Angular 2 Child1-Parent-Child2 事件传播

标签 javascript angular event-propagation

我在 Angular 2 上工作的时间只有几周,所以请尽量体谅一下,也许能给我一些有用的建议?谢谢。我有一个主要组件(pageComponent),它的模板内有其他两个较小的组件(tableComponent 和 filterComponent),每个组件都有自己的功能和属性。如何捕获在一个子组件中创建的事件并将其传播到同一父组件的另一个子组件?换句话说,如何在同一父组件模板中的两个兄弟组件之间传播和通信事件?

最佳答案

我认为您有几个选择。

第一个子组件可以使用 @Ouput 装饰器发出事件,并且 让该事件处理程序调用同级上的操作。

例如兄弟组件

export class TableComponent {
@Output() anEvent: EventEmitter<any> = new EventEmitter<any>();
..
}

export class FilterComponent {

    callMeWhenSomethingHappens($event){
     ..
    }
}

父组件模板,当事件发出时,它使用#theFilter局部变量调用过滤器组件。

<app-filter #theFilter>
</app-filter>

<app-table (anEvent)="theFilter.callMeWhenSomethingHappens($event)">
</app-table>

您还可以考虑使用 shared service如果同级组件在模板中无法相互访问(例如,如果它们是由 router-outlet 创建的)。

关于javascript - Angular 2 Child1-Parent-Child2 事件传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42286924/

相关文章:

javascript - 如何防止 Angular 8 中的事件冒泡?

javascript - 如何使用 jQuery 延迟事件传播

javascript - 修复了单页网站问题中的切换菜单

javascript - Cucumber Protractor - Angular 和非 Angular 应用程序的页面超时问题

javascript - Material Design 表组件不支持动态行选择

node.js - 集成 angular2-onsenui 时出现 ZoneAwareError

javascript - 动画帧误解

javascript - 正确的 ES6 导入以添加力矩精确范围插件

angular - 给出特定响应时取消订阅 Angular2 方法?

javascript - 如何在委托(delegate)的事件监听器中支持 stopPropagation