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