Угловая 5: ошибка: ошибка (в обещании): ошибка: невозможно присвоить ссылку или переменную

Я обнаружил ошибку в Angular 5 при добавлении цикла 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>

2 ответа

Решение

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>
Другие вопросы по тегам