angular - 在反应形式中将变量绑定到 [value],Angular 6
问题描述
<form [formGroup]="form"#postForm="ngForm" (submit)="onSaveTicket()">
<div class="text-editor-container">
<div *textEditor="let btnClick = controller; let divField">
<div class="text-editor__inputContainer">
<div #myDiv id="divContenteditable" contenteditable="true" [innerHtml]="editedTicket?.description">
Please enter a description
</div>
<mat-form-field>
<textarea
matInput
type="text"
formControlName="description"
required
[ngModel] = "divField"
placeholder="Description">
</textarea>
<mat-error *ngIf="form.get('description').invalid">Please enter a description</mat-error>
</mat-form-field>
</div>
</div>
</div>
<button mat-raised-button type="submit" class="btn--cyan">Add Ticket</button>
</form>
在上面的代码中,我有一个指令 *textEditor,它读取 的内容div id="divContenteditable"
并用变量divField
. 然后我想把这个变量绑定到invisible textarea的值上,并在组件中读取。
ngOnInit() {
this.form = new FormGroup({
description: new FormControl(null, {validators: [Validators.required]})
});
this.form.valueChanges.subscribe(val => {
console.log(val);
})
}
当我将变量作为 a[ngModel] = "divField"
而不是传递时[value] = "divField"
,一切正常,但我收到警告:
“看起来您在与 formControlName 相同的表单字段上使用 ngModel...”
如何在不使用 ngModel 的情况下使用 Reactive Forms 方法获得此结果,这会导致警告?
解决方案
<textarea>
您应该只使用其中之一([ngModel]
或)绑定formControlName
,而不是两者。您同时使用两者有什么特别的原因吗?您可以删除 [ngModel] 并仅使用 formControlName 并使用获取或设置值或使用form.get("description").value
设置值form.get("description").setValue(".....")
。
另一种选择是:
<div #myDiv id="divContenteditable" (change)=contentChange($event)>
Please enter a description
</div>
contentChange(event: any){
console.log(event.value)
form.get("description").setValue(".....")
}
推荐阅读
- log4j - 使用 log4j.properties 和 log4j2 在某些天后删除日志
- reactjs - Reactjs客户端向服务端发送图片时存储图片的解决方案
- node.js - YARN 构建 ia32 依赖项
- google-cloud-platform - 每天从 Big query 加载数据到 Postgre 云 sql 数据库
- python - 如何在 Python 中编写一个 for 循环来重复要求用户输入一个数字,直到他们输入一个整数(0、1、2 等)?
- javascript - 如何使用 React 在网站上显示固定的代码片段
- python - 熊猫指数移动平均线 (EMA)
- android - 如何在 Android 上找到测试运行器的 PID
- python - 如何转换原始数据(仅包含 1 列)以将每个功能拆分为一列,直到指定值?熊猫
- texas-instruments - 德州仪器 CC1120 多中断问题