Angular 将信息从一个角度组件传递到另一个角度组件

Angular 将信息从一个角度组件传递到另一个角度组件,angular,Angular,(如果这是一个重复的,请让我知道。我发现了类似的线程,但无法找到答案的解决方案) 我有一个组件,它调用他们的子组件(modal#1),而子组件又可以调用另一个modal(modal#2)。模态#1只是一种标准形式。如果其中一个字段缺少用户想要的选项,则可以触发modal#2添加该字段 我想知道的是,如何将数据从模态2传递到模态1,以便通知模态1添加了新元素,并且它应该在其各自的表单字段中使用它作为默认值?在模态之间交换信息的最佳方式是使用服务。 我可以向您展示的最佳解决方案如下: 使用最后一种方

(如果这是一个重复的,请让我知道。我发现了类似的线程,但无法找到答案的解决方案)

我有一个组件,它调用他们的子组件(modal#1),而子组件又可以调用另一个modal(modal#2)。模态#1只是一种标准形式。如果其中一个字段缺少用户想要的选项,则可以触发modal#2添加该字段


我想知道的是,如何将数据从模态2传递到模态1,以便通知模态1添加了新元素,并且它应该在其各自的表单字段中使用它作为默认值?

在模态之间交换信息的最佳方式是使用服务。 我可以向您展示的最佳解决方案如下:


使用最后一种方法:)

在不同模态之间交换信息的最佳方法是使用服务。 我可以向您展示的最佳解决方案如下:


使用最后一种方法:)

大多数情况下,您应该使用
@Input
@Output

有时,如果不可能,例如由于
的原因,您可以向这两个组件注入服务,并通过rxjs的主题/行为主题进行通信

服务代码

public subject$: Subject<any> = new Subject<any>();
组件2中的代码

constructor(private _serviceName: SomeService){
    this._serviceName.subject$.next(anyData); // send data
}
别忘了取消订阅主题的OnDestroy

这是你自己做的习惯方式。大多数库都内置了与动态生成的组件作为模态进行通信的方式


大多数情况下,您应该使用
@Input
@Output

有时,如果不可能,例如由于
的原因,您可以向这两个组件注入服务,并通过rxjs的主题/行为主题进行通信

服务代码

public subject$: Subject<any> = new Subject<any>();
组件2中的代码

constructor(private _serviceName: SomeService){
    this._serviceName.subject$.next(anyData); // send data
}
别忘了取消订阅主题的OnDestroy

这是你自己做的习惯方式。大多数库都内置了与动态生成的组件作为模态进行通信的方式


使用材质对话框。并获取它的返回值。您可以从对话框1打开对话框2。如果要将数据从父级传递到子级,请使用
@Input
,如果要将数据从子级传递到父级,请使用
@Output
,使用“材质”对话框。并获取它的返回值。您可以从dialog1打开dialog2。如果要将数据从父级传递到子级,请使用
@Input
,如果要将数据从子级传递到父级,请使用
@Output