【发布时间】:2018-08-06 18:43:12
【问题描述】:
我遇到了一个问题,我试图在 UI 元素完全加载之前使用它们,从而导致未定义的异常。
表单在组件构造函数中加载,然后我调用 initializeElements 方法来处理 UI 元素。但是,正如我所提到的,我得到了 null 和未定义的异常,因为我怀疑 loadForms() 方法在我去获取对象时没有完全完成。
我是 Angular 的新手,所以我不确定我可以在这里做什么来“等待”直到表单完全加载。我尝试将这些方法放在几个不同的生命周期挂钩中,但都没有成功。
我有我的组件:
export class UIComponent implements OnInit{
form = new FormGroup({});
model = {};
fields: FormlyFieldConfig[];
constructor(){
this.fields = loadForm();
this.initializeElements();
};
ngOnInit(){
};
initializeElements(){
var overrides = this.form.get('Overrides'); // this is null on page load
var firstNameObj = overrides.get('First Name'); // also null on page load
};
}
我的组件模板:
<form fxLayoutAlign="center center" [formGroup]="form">
<formly-form [form]= "form" [fields]="fields" [model]="model"></formly-form>
</form>
方法loadForms:
export function loadForms(){
return [
{
'key': 'Overrides',
'fieldGroup': [{
'fieldGroupClassName': 'display-flex',
'fieldGroup': [{
'key': 'First Name',
'type': 'input',
'value': 'New First Name',
'templateOptions':{
'label': 'First Name: '
}
},
'key': 'Last Name',
'type': 'input',
'value': 'New Last Name',
'templateOptions':{
'label': 'Last Name: '
}
}]
}]
}
]
}
【问题讨论】:
标签: javascript angular typescript angular-formly