Как динамически установить тег имени в цикле ngFor *? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь установить имя тега динамически со значениями из цикла ngFor.Нет проблем присвоить значение тегу id, но для тега name это не работает.

<table class="compactTable">
  <tr *ngFor="let s of ps.State; let i = index;" >
    <td class="alignRight" width="15%">
        <input type="text" id ="{{i}}" (change)="check($event)" name ="{{i}}" [(ngModel)]="s.ZBez"> 
    </td>
  </tr>
</table>

$event, который я передаю onChange функции check(), имеетid равно i, но name всегда пустая строка.Почему они разные и как я могу установить name динамически?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Вам нужно использовать его как [attr.ATTR_NAME] и без двойных скобок.

<input type="text" [attr.id]="i" (change)="check($event)" [attr.name]="i" [(ngModel)]="s.ZBez"> 

Вы можете проверить этот официальный документ о синтаксисе шаблона для получения дополнительной информации:

https://angular.io/guide/template-syntax

Обновление

Как говорится в комментарии @ConnorsFan, привязка свойств также должна работать.Я создал проект stackblitz со всеми возможностями.Пожалуйста, проверьте это:

https://stackblitz.com/edit/angular-ckp8fz

0 голосов
/ 01 февраля 2019

Вы можете попробовать [name]="i"

<input type="text" id ="{{i}}" (change)="check($event)" [name]="i" [(ngModel)]="s.ZBez"> 

РЕДАКТИРОВАТЬ: Для идентификатора вы можете попробовать то же самое [attr.id]="i"

...