我试图让每个用户点击一个按钮时出现一些文本框。 我正在用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>
您通过ID引用'#subjectName'文本框,但它位于'* ngFor'内。不会重复,并且不会有身份冲突吗?当你在你的点击处理程序中调用'addSubject()'时,你引用了哪个文本框?我很困惑。 –