Угловой 7 - сделать # параметр = "ngModel" ввод в качестве динамического имени - PullRequest
0 голосов
/ 13 марта 2019

Есть ли способ создать параметр "ngModel" в шаблонно-управляемых формах в виде динамического имени (например, по циклу)?

Я хочу получить что-то вроде:

<div *ngFor='let d of items; let i = index;'>
    <input type="text" name="street" 
    [(ngModel)]="d.surname" #surname{{d.myindex}}="ngModel">
</div>

где "d.myindex" - это динамическое имя.

1 Ответ

0 голосов
/ 13 марта 2019

Я не знаю, каково ваше требование, чтобы сделать его динамичным, но ... TemplateRef не для этого.

TemplateRef => это блокхотя в цикле оно имеет то же имяВы можете использовать декоратор ViewChildren, который возвращает все элементы ItemType, а оставшаяся магия Angular делает это за вас.

component.ts

<div *ngFor="let i of [0, 1, 2, 3]" #items>
     <button (click)="onClick(items, i)">Click on item {{ i }}</button>
</div> 

.html

@ViewChildren('items') items: ItemType<ElementRef>;

 onClick(item, i) {
    console.log('item clicked : ', item);
    console.log('index of item : ', i);
    console.log('all items : ', this.items)
 } 

Мне неясно, что вы хотите, но я только что показал путь с click, пожалуйста, примените его для вашего input

, для более подробной информации, пожалуйста, проверьте: https://stackoverflow.com/a/44441164/5835354

...