我有一个模型,这是一个字符串列表。
<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>
我的问题很简单:为什么?
答案 0 :(得分:3)
因为item
是一个由值传递的原始值。
更新该值不会做任何有用的事情,因为ngModel
只会收到该值的副本。
使用model[i]
传递一个引用,该引用可用于更新存储它的值。