Angular 6和Material通过对话框保持服务状态

时间:2018-08-21 14:15:30

标签: angular-material angular6

我有2种表格。这些表格中的每一个都有自己的材质对话框,可以随着当前状态的发展而发展。

因此,PersonComponent由RequestComponent和ResponseComponent使用,但是PersonService具有两种不同的状态。

问题是,目前,如果每个组件的状态在CoreModule级别提供,则状态可以相同。如果在PersonComponent级别提供,则每个可能不同。

我也尝试提供RequestComponent和ResponseComponent的级别,但这似乎是错误的。

以下是它在stackblitz上的再现:https://stackblitz.com/edit/poc-grow-form?embed=1

1 个答案:

答案 0 :(得分:0)

最后,我使用了对话框的Material数据(MAT_DIALOG_DATA)来提供我的服务的正确实例。

this.dialog.open(PersonDialogComponent, { 
  data: { service: this.personService } 
});

然后通过输入将其提供给personComponent

<app-person [service]="data.service" ></app-person>

最后检查personComponent是否需要输入

@Input("service") inputService: PersonService;
personService: PersonService;

constructor(private _personService: PersonService) { }

ngOnInit() {
  this.personService = this.inputService ? this.inputService : this._personService;
}

https://stackblitz.com/edit/poc-grow-form?embed=1&file=src/app/core/person/person.component.ts