angular - Angular:错误 RangeError:当我输入输入时,超出了最大调用堆栈大小消息
问题描述
当我在其中一个输入中键入内容时,我在控制台中收到 ERROR RangeError: Maximum call stack size exceeded 消息
app.component.html
<div class="container-wrap">
<div class="container">
<input type="number" [formControl]="input1">
<input type="number" [formControl]="input2">
</div>
</div>
app.component.ts
constructor() { }
input1:FormControl=new FormControl();
input2:FormControl=new FormControl();
ngOnInit(): void {
this.input1.valueChanges
.pipe(tap(value=>{
this.input2.setValue(value);
})).subscribe();
this.input2.valueChanges
.pipe(tap(value=>{
this.input1.setValue(value);
})).subscribe();
}
看起来像输入我的一个输入调用在应用程序中无尽的 valueChanges 循环。
我想在输入 iput1 时输入它在 input2 中输入的内容,并且当我输入 input2 时它会更改 input1 中的输入。
如何解决这个问题?
解决方案
你可以使用一个FormGroup
包含你的两个FormControl
.
使用 aFormBuilder
它看起来像这样:
constructor(formBuilder: FormBuilder) {}
ngOnInit(): void {
this.formGroup = this.formBuilder.group({
inputA: this.input1,
inputB: this.input2
});
this.formGroup.valueChanges.subscribe(values => [switch values here]);
}
推荐阅读
- python - FLASK 服务器在将上下文传递给模板时出现内部服务器错误
- node.js - 使用 Flask(数据处理服务器)和 Node.js(RESTful API)来服务数据分析服务器是一个好主意吗?
- java - Spring kstreams 无法让处理器工作 - 类“[B”不在受信任的包中
- git - git reset --hard 意外删除了本地文件
- python - Django 管理面板 css 在数字海洋服务器中未按预期工作
- javascript - Chrome 扩展程序 | 单击按钮时将内容脚本从外部源加载到 chrome 扩展
- recaptcha - 如何获取 Contact Form 7 的密钥 reCaptcha
- reactjs - 如何使用 react.js 前端的 fetch 或 XMLHttpRequest 管理烧瓶登录?
- saml - 对 API 调用使用 SAML 安全上下文
- html - 图标需要用 :before 伪 css 元素包裹两行