Angular 2+ - ngModel不会将初始值绑定到ngFor循环中的选择

时间:2017-09-25 13:44:54

标签: angular

如果我在ngFor循环中创建选择输入,然后通过ngModel将值绑定到某个数组 - 这些选择不会从这个数组中获取它们的初始值(就像它只创建一个单向绑定一样)。以下是plunker中的简单示例: https://plnkr.co/edit/LX7XyrHcMGH8avZYA0pv?p=preview

@Component({
  selector: 'my-app',
  template: `
    <div *ngFor="let select of test; let i = index" >
      <select name="test" [(ngModel)]="vals[i]">
        <option *ngFor="let item of select" [ngValue]="item">{{item.lol}}</option>
      </select>
    </div>
    <div style="display: flex">
      <div *ngFor="let val of vals; let last = last;">
        {{val.lol}}{{last? '' : ','}} 
      </div>
    </div>
  `,
})
export class App {
  test: any = [
    [{ lol: '1' }, { lol: '2' }, { lol: '3' }],
    [{ lol: '4' }, { lol: '5' }, { lol: '6' }],
    [{ lol: '7' }, { lol: '8' }, { lol: '9' }],
  ];
  vals: any[] = [{ lol: '1' }, { lol: '4' }, { lol: '7' }];
  constructor() {}
}

1 个答案:

答案 0 :(得分:1)

在此示例中使用[compareWith]解决了此问题

更新: 虽然它修复了这个例子,但在我的代码中,ngModel只更新了由ngFor生成的一个选择输入的值。对我来说,设置[ngModelOptions] =&#34; {standalone:true}&#34;已经解决了这个问题。希望它有所帮助...