我在Angular2中有这个模板:
header("Content-type: application/pdf");
header("Content-Length: " . filesize($file));
echo read_file($file);
我将<tr *ngFor="#user of users">
<td>
<label *ngIf="editing != user.id">{{ user.name }}</label>
<input #username *ngIf="editing == user.id" value="{{ user.name }}" />
</td>
<td>
<label *ngIf="editing != user.id">{{ user.lastname }}</label>
<input #lastname *ngIf="editing == user.id" value="{{ user.lastname }}" />
</td>
<td>
<label *ngIf="editing != user.id">{{ user.gender | genderPipe }}</label>
<select #gender *ngIf="editing == user.id" value="{{ user.gender }}">
<option value="0">
{{ 0 | genderPipe }}
</option>
<option value="1">
{{ 1 | genderPipe }}
</option>
</select>
</td>
<td>
<img (click)="removeUser(user.id)" width="16px" class="pull-left" src="/images/close.png" />
<img (click)="editUser(user.id)" *ngIf="editing != user.id" class="pull-left" src="/images/edit.png" />
<img (click)="saveUser(user.id, username)" *ngIf="editing == user.id" class="pull-left" src="/images/save.png" />
</td>
属性设置为第一个输入。
在#username
发送saveUser()
参数时,username
为undefined
。
为什么?我该如何解决这个问题?
答案 0 :(得分:2)
您应该使用[(ngModel)]
更新属于它的所有属性的值,而不是使用带有value
插值的{{}}
属性。
<强>标记强>
<tr *ngFor="#user of users">
<td>
<label *ngIf="editing != user.id">{{ user.name }}</label>
<input *ngIf="editing == user.id" [(ngModel)]="user.name" />
</td>
.....
<td>
.....
<img (click)="saveUser(user)" *ngIf="editing == user.id" class="pull-left" src="/images/save.png" />
</td>