Я пытаюсь сделать несколько текстовых полей каждый раз, когда пользователь нажимает кнопку. Я делаю это с ngFor. По какой-то причине ngFor не будет выполнять итерацию. Я попытался использовать срез, чтобы изменить ссылку на массив, но все же текстовые поля не появятся.angular2 ngFor не работает
Любая идея, что я делаю неправильно ?? Ниже приведены коды HTML и компонентов. Спасибо !!!
export class semesterComponent {
subjectsNames = [];
addSubject(subjectName: string) {
if (subjectName) {
this.subjectsNames.push(subjectName);
this.subjectsNames.slice();
console.log(subjectName);
console.log(this.subjectsNames);
}
};
<div class="semester-div">
<ul>
<li ngFor="let subject of subjectsNames">
<span>
<input #subjectName type="text" />
<input id = "subjectGrade" type = "number"/>
<input id = "subjectWeight" type = "number"/>
</span>
</li>
</ul>
<br>
<button (click)="addSubject(subjectName.value)">add</button>
<br>
</div>
Вы ссылаетесь на текстовое поле '# subjectName' по идентификатору, но оно находится в' * ngFor'. Разве это не будет повторяться, и разве у вас нет конфликтов с ИД? Когда вы вызываете 'addSubject()' в обработчике кликов, в каком текстовом поле вы ссылаетесь? Я смущен этим. –