Angular 5: ERROR Error: Uncaught (in promise): Error: Cannot assign to a reference or variable

Angular 5: ERROR Error: Uncaught (in promise): Error: Cannot assign to a reference or variable

我在 Angular 5 在 table 中添加 for 循环时遇到错误。我试图找到原因,但他们不够清楚,我无法解决问题。我的代码和报错如下。

<tr *ngFor="let template of templates; let j=index">
    <td><b>Template {{j+1}}</b></td>
    <td><input class="form-control" [(ngModel)]="template"/></td>
</tr>

let template 创建局部变量,而 ngModel 无法分配给局部变量。您只能分配给组件的属性(字段)。

但您可以在组件中尝试:

public templates = ['test', 'test'];
public customTrackBy(index: number, obj: any): any {
    return  index;
}

模板:

<tr *ngFor="let template of templates; let j=index ;  trackBy:customTrackBy">
    <td><b>Template {{j+1}}</b></td>
    <td><input class="form-control" [(ngModel)]="templates[j]"/></td>
</tr>

这应该有效:

<tr *ngFor="let template of templates; let j=index">
  <td><b>Template {{j+1}}</b></td>
  <td><input class="form-control" [(ngModel)]="templates[j]"/></td>
</tr>