具有相同ngModel的多个文本框

时间:2019-04-10 11:12:39

标签: angular

我的对象将决定运行时文本框的数量。并且所有这些文本框都具有相同的ngModel名称。 [(ngModel)] =“ childComment”。功能明智的作品。但是当我在一个文本框中编写内容时,它会显示在所有文本框中吗?谢谢

<mat-form-field class="removetopmargin">
<input matInput  [(ngModel)]="childComment" placeholder="Reply here ..">
</mat-form-field>

in the image I have written try your best, and shown in multiple textboxes.

4 个答案:

答案 0 :(得分:1)

如果您确实希望将相同的值绑定到相同的属性,则在模糊时更新该值,而不是使用ngModel。

<input matInput  [value]="childComment" (blur)="childComment = $event.target.value" placeholder="Reply here ..">

这意味着在您键入内容时,值不会更新,直到您移至另一个字段并触发了模糊事件处理程序。

在此处查看演示

https://stackblitz.com/edit/angular-stfyru?file=src%2Fapp%2Fapp.component.html

答案 1 :(得分:0)

 [(ngModel)]="childComment"

两种方式绑定到组件的属性childComment。如果多个控件是通过两种方式绑定到同一属性,则它们都将显示相同的值。您需要为每个控件绑定一个不同的属性。

您可以有一个数组并遍历

controls = [
  { name: 'time', value: null },
  { name: 'fast', value: null }
];

并在您的模板中

<mat-form-field class="removetopmargin" *ngFor="let control of controls">
  <input [name]="control.name" [(ngModel)]="control.value" placeholder="Reply here ..">
</mat-form-field>

答案 2 :(得分:-1)

尝试为每个输入定义不同的名称,例如:

<input matInput [name]="dynamicNameHere" [(ngModel)]="childComment" placeholder="Reply here ..">

答案 3 :(得分:-1)

您将一个模型绑定到某些输入。因此,每次您想写东西时,由于它们绑定到相同的变量,因此结果是相同的。