angular2 ng为了赢得工作

时间:2016-11-16 19:10:49

标签: javascript html angular typescript

我尝试在每次用户点击按钮时都会显示一些文本框。 我用ngFor做这件事。 出于某种原因,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>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

你错过了* ngFor

中的*
return del([
    buildTo + "/**/*"
], { force: true });

答案 1 :(得分:1)

您的控件编写subjectName的方式不存在,因为数组为空,因此the timer is held 不会呈现它。单击“添加”按钮会导致*ngFor undefined真正undefined上的值不存在的异常。

将其移到subjectName之外会使事情奏效:

*ngFor

我怀疑你还希望在迭代主题名称时进一步绑定数据,但这不在问题的范围内。

这是一个掠夺者:http://plnkr.co/edit/HVS0QkcLw6oaR4dVzt8p?p=preview

答案 2 :(得分:0)

首先,你在* ngFor中缺少*。 第二次推出

<input #subjectName type="text" />
来自ngFor的

应该可以工作。