ng对于字符串列表的项目,我不能直接使用该项目

时间:2017-05-10 09:56:01

标签: angular

我有一个模型,这是一个字符串列表。

<span *ngFor="let item of model; let i = index">
  <input #inputField
         type="text"
         [name]="name + '_' + i"
         [(ngModel)]="item"  />
</span>

上一段代码抛出错误:

  

未处理的承诺拒绝:无法分配给引用或变量!   ;区域:;任务:Promise.then;值:对象{   __zone_symbol__error:错误,fileName:Getter,lineNumber:Getter,columnNumber:Getter,message:getter,name:Getter,stack:Getter,   originalStack:Getter,zoneAwareStack:Getter,toString:value(),4 de   加......}   _AstToIrVisitor.prototype.visitPropertyWrite @ http://localhost:4200/vendor.bundle.js:27076:23

虽然,以下工作正常:

<span *ngFor="let item of model; let i = index">
  <input #inputField
         type="text"
         [name]="name + '_' + i"
         [(ngModel)]="model[i]"  />

</span>

我的问题很简单:为什么?

1 个答案:

答案 0 :(得分:3)

因为item是一个由值传递的原始值。 更新该值不会做任何有用的事情,因为ngModel只会收到该值的副本。

使用model[i]传递一个引用,该引用可用于更新存储它的值。