我想动态加载表单,但是当我单击按钮加载第二个表单时,出现错误。
据我了解,@ Viewchild在子组件中设置了fields属性,但是在单击按钮以加载第二个表单时不会更新该属性。
另请参阅应用程序组件中的loadForm方法。
错误 错误:找不到名称为“ userName”的控件
我在stackbliz中有一个可行的例子。
https://angular-y3n2u9.stackblitz.io
查看控制台日志以查看错误消息
任何人都知道为什么第二个表单未加载到我的demoform-component中。
谢谢
约翰
答案 0 :(得分:1)
所有原始类型均按值传递。对象,数组和函数也按值传递,因此在加载form2时尝试尝试ngOnChanges生命周期挂钩将不会起作用,因此不会触发更改检测。
ngOnChanges(){
this.dynamicForm = this.createForm();
}