Угловой 5: ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: Невозможно назначить ссылку или переменную

1

Я обнаружил ошибку в 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>
  • 0
    Переменная ngModel и ссылочная переменная ngFor не могут быть одинаковыми.
  • 0
    Какой тип элемента "шаблон"? чтобы показать значение, вы можете попробовать [innerHTML] = "template"
Показать ещё 3 комментария
Теги:
angular
angular5
ngfor

2 ответа

3
Лучший ответ

пусть шаблон создает локальную переменную, а 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>
0

Это должно работать:

<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>
  • 0
    таким образом, поле ввода теряет фокус после ввода первой буквы.
  • 0
    О да. Есть причина. Благодарю вас
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню