2017-02-02 3 views
0

У меня есть форма, которая использует *ngFor, чтобы перебрать массив, чтобы создать поле ввода для каждого элемента.ngModelChange не обновляет значение ввода

Этот массив начинается с 1 элемента, но когда число вводится в одно из полей ввода, на этот массив добавляется больше элементов.

Я использую (ngModelChange) для ввода новых элементов в массив при вводе числа.

<form #testForm="ngForm" (submit)="submit()"> 
    <div *ngFor="let test of tests"> 
     <label for="testProp">Test Property</label> 
     <input type="number" [(ngModel)]="test.testProp" (ngModelChange)="inputChange($event)" name="testProp"/> 
     <b>Value: {{test.testProp}}</b> 
    </div> 
    </form> 

функция inputChange

inputChange(number: any, index: any) { 

    for(var i = 0; i < number; i++) { 
    console.log(i); 
    this.tests.push({}); 
    } 

} 

Текущее поведение

При связывании значение элемента он присутствует, но по какой-то причине значение на вход является пустым.

Ожидаемое поведение

значение на вход не должен быть пустым.

Минимальное воспроизведение проблемы с инструкциями

http://plnkr.co/edit/5P0nt68FSFH2UuEpJRnh?p=preview

  • Угловая версия: 2.4.5

  • Browser: все

  • Язык: машинопись 2.0.2

+0

Я создал вопрос на угловой репо: https://github.com/angular/angular/issues/14251 –

+0

попытаться снять кронштейн [ngModel] = «test.testProp» –

ответ

1

Я использовал тот же name атрибут для каждого входа. Добавление индекса к имени как name="testProp-{{i}}"

Смежные вопросы