在mat-dialog angular中传递动态对象键



我使用的是角材质的mat-dialog。下面是我的代码:

if(abc_name === name){
const dialogRef = this.dialog.open(ViewAbcComponent, {
panelClass: 'full-screen-dialog-container',
data: {abc_name: this.abcDetails.item1[keyValue]}
});
dialogRef.afterClosed().subscribe((result) => {
if(result){}
console.log("ViewAbcComponent dialog closed", result);
});
}

data:对象中,我希望tp传递动态abc_name值。有什么办法吗?

您可以在service和listen中创建subject/BehaviorSubject(订阅)在你的ViewAbcComponent组件的主题。一旦你的数据改变,你必须更新数据作为subject.next(data);,你会得到它的组件。主题的例子:

const subject = new Rx.Subject();
subject.next(1);
subject.subscribe(x => console.log(x));

BehaviorSubject例子:

const subject = new Rx.BehaviorSubject(0);
subject.next(1);
subject.subscribe(x => console.log(x));

详细说明:(根据要求)

1。你需要在你的服务中添加变量比如app。service。ts并添加更新方法。

const subject = new Rx.Subject();
updateSubject(data){
subject.next(data)
} 
  1. 无论您的数据正在更改哪个组件,您都必须调用此updatessubject方法来更新数据。likethis.appService.updateSubject(updatedData);

  2. 在<<li>strong> ViewAbcComponent 组件你要订阅它,比如

    this.appService.subject.subscribe(x => console.log("mydata",x));

最新更新