订阅多个字段的 valueChanges 导致反应形式的性能问题 angular 2
Subscribing to valueChanges for multiple fields is causing performance issue in reactive form angular 2
我有 50 多个字段,它们是反应形式的输入文本和下拉菜单。这些字段相互依赖,以便在选择后触发验证并显示相关字段。
我订阅了 ngOnInit() 中的值更改,如下所示:
ngOnInit() {
this.setPageValidation();
}
setPageValidation() {
this.NameSubscription = this.FormGroup.get('personnel').get('name').valueChanges.subscribe(data
=> {
this.enableOrders();
});
this.StateSubscription = this.FormGroup.get('personnel').get('state').valueChanges.subscribe(data
=>
{
this.enableAccount();
});
// more value changes subscription like 40 fields ............................
}
加载表单时,由于在加载表单时订阅了值更改,加载时间变长了。
我尝试实现它以将代码移动到 ngOnChanges() 但它不会触发其他字段的启用和显示,具体取决于从 table 如果这些字段有值。它只是填充第一个字段,其余部分根据其值不显示。
在此先感谢您。如果有任何最佳方法可以解决它而不会出现性能问题,我非常感谢您的帮助。
您可以使用单个订阅。
this.personnelSubscription =
this.Formgroup.get('personnel').valueChanges.subscribe(data => {
if (data) {
//Console log the data here. It will print the formGroup of personnel
// then select the control and add your validations
// like this data.controls.state
}
})
我有 50 多个字段,它们是反应形式的输入文本和下拉菜单。这些字段相互依赖,以便在选择后触发验证并显示相关字段。
我订阅了 ngOnInit() 中的值更改,如下所示:
ngOnInit() {
this.setPageValidation();
}
setPageValidation() {
this.NameSubscription = this.FormGroup.get('personnel').get('name').valueChanges.subscribe(data
=> {
this.enableOrders();
});
this.StateSubscription = this.FormGroup.get('personnel').get('state').valueChanges.subscribe(data
=>
{
this.enableAccount();
});
// more value changes subscription like 40 fields ............................
}
加载表单时,由于在加载表单时订阅了值更改,加载时间变长了。
我尝试实现它以将代码移动到 ngOnChanges() 但它不会触发其他字段的启用和显示,具体取决于从 table 如果这些字段有值。它只是填充第一个字段,其余部分根据其值不显示。
在此先感谢您。如果有任何最佳方法可以解决它而不会出现性能问题,我非常感谢您的帮助。
您可以使用单个订阅。
this.personnelSubscription =
this.Formgroup.get('personnel').valueChanges.subscribe(data => {
if (data) {
//Console log the data here. It will print the formGroup of personnel
// then select the control and add your validations
// like this data.controls.state
}
})