Javascript angular2 ngFor won';行不通
我试图让一些文本框在用户每次单击按钮时都出现。 我和ngFor一起做这件事。 出于某种原因,ngFor不会迭代。 我已经尝试使用slice来更改数组引用,但是文本框仍然不会出现 知道我做错了什么吗?? 下面是HTML和组件代码。 谢谢Javascript angular2 ngFor won';行不通,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我试图让一些文本框在用户每次单击按钮时都出现。 我和ngFor一起做这件事。 出于某种原因,ngFor不会迭代。 我已经尝试使用slice来更改数组引用,但是文本框仍然不会出现 知道我做错了什么吗?? 下面是HTML和组件代码。 谢谢 导出类组件{ 主题名称=[]; addSubject(subjectName:string){ if(主题名称){ this.subjectsNames.push(subjectName); this.subjectsNames.slice(); console
导出类组件{
主题名称=[];
addSubject(subjectName:string){
if(主题名称){
this.subjectsNames.push(subjectName);
this.subjectsNames.slice();
console.log(subjectName);
console.log(this.subjectsNames);
}
};
-
添加
您缺少的*in*ngFor
<li *ngFor="let subject of subjectsNames">
您缺少的*in*ngFor
<li *ngFor="let subject of subjectsNames">
控件写入subjectName的方式不存在,因为数组为空,因此*ngFor
不会呈现它。单击“添加”按钮会导致异常,即未定义的
上不存在该值,其中未定义的
实际上是subjectName
将其移出*ngFor
将使事情正常进行:
<input #subjectName type="text" />
<ul>
<li *ngFor="let subject of subjectsNames">
<span>
{{subject}}
<input id="subjectGrade" type="number"/>
<input id="subjectWeight" type="number"/>
</span>
</li>
</ul>
-
{{subject}}
我怀疑您还想在迭代主题名称时进一步绑定数据,但这超出了问题的范围
这里有一个提示:控件写入subjectName的方式不存在,因为数组是空的,因此,
*ngFor
不会呈现它。单击Add按钮会导致一个异常,即值不存在于undefined
上,其中undefined
实际上是subjectName
>
将其移出*ngFor
将使事情正常进行:
<input #subjectName type="text" />
<ul>
<li *ngFor="let subject of subjectsNames">
<span>
{{subject}}
<input id="subjectGrade" type="number"/>
<input id="subjectWeight" type="number"/>
</span>
</li>
</ul>
-
{{subject}}
我怀疑您还想在迭代主题名称时进一步绑定数据,但这超出了问题的范围
这里有一个提示:首先,您在ngFor中丢失了*in*。 第二次推出
<input #subjectName type="text" />
从ngFor开始,应该是有效的。首先,您在*ngFor中缺少*。 第二次推出
<input #subjectName type="text" />
从ngFor,应该可以工作。您通过ID引用#subjectName
文本框,但它在*ngFor
中。调用addSubject()时,它不会重复,也不会有ID冲突吗
在您的点击处理程序中,您引用的是哪个文本框?我对此感到困惑。您通过ID引用#subjectName
文本框,但它在*ngFor
中。调用addSubject()时,它不会重复,也不会有ID冲突吗
在单击处理程序中,您引用的是哪个文本框?我对此感到困惑。