在输入模糊上保存数组元素

时间:2017-06-14 07:53:36

标签: javascript angular typescript

我的表格中填充了Array的元素,比如phases: Phase[];

当我的用户点击我的表格的一行时,他可以通过输入编辑其内容,当任何输入模糊(失去焦点)时,我希望在我们的数组中保存该特定元素的新信息。

我正在寻找一种干净的方式,这是我迄今为止的尝试方式:

<!-- Table rows -->
<tr *ngFor="let phase of phases ; let i = index" [attr.data-index]="i">
   <input value="{{phase.name}}" (blur)="savePhase(phase, i)">  
   <input value="{{phase.milestone}}" (blur)="savePhase(phase, i)">
</tr>

savePhase(phase, index)应该使用新值保存元素。但是在这里,我无法找到解决方案,在模糊的情况下,我的方法会被调用,但phase的值包含旧的。

我怎么能告诉我方法:在不传递新值及其名称的情况下,要更改哪些特定值(名称,里程碑等)?

如果我要做以下事情:savePhase(phase, index, inputName, inputValue)我的方法不干净,维护会很糟糕。

1 个答案:

答案 0 :(得分:1)

我认为你要找的是ngModel

<tr *ngFor="let phase of phases ; let i = index" [attr.data-index]="i">
   <input [ngModel]="phase.name" (blur)="savePhase(phase, i)">  
   <input [ngModel]="phase.milestone" (blur)="savePhase(phase, i)">
</tr>