Angular的FormControl导致无限循环。
创始人
2024-10-24 03:31:25
0

可能会出现这个问题的原因是在监听表单控件的值变化时,代码同时更改了表单控件的值,导致了无限循环。为了避免这个问题,可以将更改控制器值的代码放在Angular的zone之外,使其避开Angular的变更检测。

示例代码:

import { Component, NgZone } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';

@Component({
  selector: 'my-app',
  template: `
    

Form value: {{ formGroup.value | json }}

`, }) export class AppComponent { formGroup = new FormGroup({ name: new FormControl('') }); constructor(private ngZone: NgZone) { this.formGroup.get('name').valueChanges.subscribe(name => { // This code will cause an infinite loop // this.formGroup.setValue({ name: name.toUpperCase() }); // Putting the code outside of Angular zone // will avoid the infinite loop this.ngZone.runOutsideAngular(() => { this.formGroup.setValue({ name: name.toUpperCase() }); }); }); } }

相关内容

热门资讯

4分钟透视!微乐小程序黑科技,... 4分钟透视!微乐小程序黑科技,微信微乐跑得快游戏辅助脚本(开挂)一直是真的挂(2026)一、微乐小程...
2026版辅助挂!微乐小程序黑... 2026版辅助挂!微乐小程序黑科技,微乐智能插件激活码(透视)果然真的是有挂(哔哩哔哩)1、在微乐智...
4分钟透视!微乐小程序黑科技,... 4分钟透视!微乐小程序黑科技,微乐安徽小程序辅助(开挂)原来真的是有挂(2026)1、4分钟透视!微...
受玩家影响!微乐小程序黑科技,... 受玩家影响!微乐小程序黑科技,手机微乐小程序破解器如何使用(透视)本来真的有挂(哔哩哔哩)受玩家影响...
5分钟插件!微乐小程序免费黑科... 5分钟插件!微乐小程序免费黑科技,微乐多乐跑作弊(开挂)总是真的是有挂(2026)1、微乐小程序免费...
透视好牌!微乐小程序黑科技,微... 透视好牌!微乐小程序黑科技,微信小程序微乐内蒙破解器(透视)总是真的有挂(哔哩哔哩)微信小程序微乐内...
两分钟工具!微乐小程序免费黑科... 两分钟工具!微乐小程序免费黑科技,微信小程序自建房记牌器(开挂)总是真的有挂(2026)1、微乐小程...
透视透视挂!微乐小程序黑科技,... 透视透视挂!微乐小程序黑科技,微信小程序微乐辅助器真吗(透视)其实是有挂(哔哩哔哩)暗藏猫腻,小编详...
2分钟透视!微乐小程序黑科技,... 2分钟透视!微乐小程序黑科技,微信微乐游戏破解器(开挂)竟然真的有挂(2026)进入游戏-大厅左侧-...
今日!微乐小程序黑科技,微乐家... 今日!微乐小程序黑科技,微乐家乡辅助app免费(透视)真是真的有挂(哔哩哔哩)1、微乐家乡辅助app...