我有一个@Output
参数的子组件:
@Output updateThis: EventEmitter<any> = new EventEmitter<any>;
和
this.updateThis.emit(myObject);
我有一个处理事件的父组件。然后它调用服务来更新对象:
<my-component (updateThis)="onUpdateThis($event)" />
这是我的问题。在父组件尝试修改对象之后,我需要通知子组件是否可以更新它(即服务是否抛出错误)。
我怎样才能将结果发送回子组件?一个想法是向myObject
添加新属性(即hasUpdateError
)。但还有其他方法吗?例如,我已经看到EventEmitter
有一个订阅方法,但在这种情况下我不知道如何使用它。
答案 0 :(得分:1)
共享服务可能与观察者一样好。因此,当父组件从子组件接收事件时,您可以使用公共set方法来更改Subject .next
的状态。子组件将订阅该Subject的Observable以获得新状态。
这里很好地解释了https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service。相同的逻辑可以应用于任何组件,而不仅仅适用于子父级。