如何初始化模态组件内的反应式表单值?
How to initialize reactive form values inside of a modal component?
查看示例代码:http://plnkr.co/edit/97nXCbQ5quCg7hVRjMvk?p=info
正如您在 showModal()
中的 app.ts
中看到的那样,我正在使用我的 DialogComponent
打开模态实例,然后调用 modalRef.componentInstance.myModel = { name: 'Hello!' };
,我希望它会触发src/dialog-component.ts
中的 ngOnChanges()
函数应该设置表单值,它应该在名称表单字段中显示 "Hello!" 的新值。
但是,看起来 ngOnChanges()
根本没有被触发,所以这从未发生过。
我在这里弄错了什么?我希望能够打开模式并使用从 myModel
数据模型中获取的值预先填充它。
提前致谢!
这是因为你的值在InInit
所以如果你这样做
ngOnInit(){
if(this.myModel){
this.rebuildForm();
}
}
在你的对话组件中你应该能够实现你正在尝试的。
查看示例代码:http://plnkr.co/edit/97nXCbQ5quCg7hVRjMvk?p=info
正如您在 showModal()
中的 app.ts
中看到的那样,我正在使用我的 DialogComponent
打开模态实例,然后调用 modalRef.componentInstance.myModel = { name: 'Hello!' };
,我希望它会触发src/dialog-component.ts
中的 ngOnChanges()
函数应该设置表单值,它应该在名称表单字段中显示 "Hello!" 的新值。
但是,看起来 ngOnChanges()
根本没有被触发,所以这从未发生过。
我在这里弄错了什么?我希望能够打开模式并使用从 myModel
数据模型中获取的值预先填充它。
提前致谢!
这是因为你的值在InInit
所以如果你这样做
ngOnInit(){
if(this.myModel){
this.rebuildForm();
}
}
在你的对话组件中你应该能够实现你正在尝试的。