我看到ngFor与ngModel结合使用时发生奇怪的行为。这是一个例子:

heroes = [
   {
      "name": "Deadpool"
   },
   {
      "name": "Thor"
   },
   {
      "name": "Superman"
   },
   {
      "name": "Batman"
   }
];

使用以下代码:
<div *ngFor="let hero of heroes;">
  <div class="row">
    <div class="input">
      <label>Superhero</label>
      <input [(ngModel)]="hero.name" name="hero">
    </div>
  </div>
</div>

结果:

super 英雄: bat 侠
super 英雄: bat 侠
super 英雄: bat 侠
super 英雄: bat 侠

而如果我不使用ngModel,而只是打印该值,则它可以正常工作:
<div *ngFor="let hero of heroes;">
  <div class="row">
    <div class="input">
      <label>Superhero</label>
      <span>{{hero.name}}</span>
    </div>
  </div>
</div>

结果:

super 英雄:死侍
super 英雄:雷神
super 英雄:超人
super 英雄: bat 侠

谁能告诉我我在做什么错?

最佳答案

唯一的问题是输入相同的input name:

name="hero"更改为name="hero{{i}}"

<div *ngFor="let hero of heroes;let i = index;">
  <input [(ngModel)]="hero.name" name="hero{{i}}">
</div>

关于angular - ngFor无法与ngModel一起正常使用( Angular 5.1.2),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48582203/

10-13 09:38