Angular 2 - @Input和@Output

时间:2017-04-28 20:34:06

标签: angular

我不确定是否应该使用@Input和@Output,因为我认为这些装饰器仅在您想要将子组件父组件与子组件通信时才起作用,反之亦然。你能澄清一下还是纠正我?

我有3个处于同一级别的组件,我正在寻找为组件B中组件A的变量设置一个值。它们没有任何关系。

由于

1 个答案:

答案 0 :(得分:1)

简而言之,你是对的,Input()和Output()只与父组件通信。但是,您的父组件可以使用组件B的Output()并将其传递给组件A的Input()。使用角度生命周期钩子ngOnChanges将有助于此。

还有很多方法可以实现组件A修改组件B中的值。您可以使用主题,服务,父组件以及许多其他策略。这可能会涉及到您希望如何在应用程序中管理状态的问题。 https://bertrandg.github.io/angular2-application-state-management-strategy/

在规模上,您肯定希望与应用中的状态管理保持一致。 ngrx(https://github.com/ngrx)提供了一个很好的类似redux的策略