如何在父组件中自动更新服务文件中的变量更改?

How can i get variable changes in a service file automatically updates in the parentcomponent?

我有一个父组件,我在其中调用具有对话框打开方法的服务。 我在那里打开对话框组件。现在,在我的对话框组件中,我有一个表单和添加数据按钮,当我添加时,我将数据作为事件发布到服务。单击添加数据按钮后我不应该关闭我的对话框应该保持打开状态。我在对话服务中的新表单数据已更新。但是我怎样才能将该事件自动发送到父组件呢?它应该检测更改并更新父组件中的变量。

提前致谢。 请提供 code/reference/connect 给我来解决这个问题。

如果你真的想使用服务,那么你需要一个 Subject 进入你的服务,一个 getter 将 return 你的主题作为可观察的。 使用此解决方案,每当您的主题发生变化时,每个订阅者都会被注意到。

服务

subject = new Subject<any>();

get subject$(): Observable<any> {
  return this.subject.asObservable();
}

parent

constrcutor(private service: YourService) {
  this.service.subject$.subscribe(console.log);
}

对话


constructor(private service: YourService) {}

submit(): void {
  this.service.subject.next(this.form.value); // Replace this.form.value by what you want
}