select中的ngModel不会从自定义管道获取更新

时间:2017-08-28 04:25:39

标签: angular

我已经创建了一个自定义不纯的管道,可以在我的ngFor中使用,如下所示

<select [(ngModel)]="selectedRole" name="selectedRole">
<option *ngFor="let role of roles| myFilter" [ngValue]="role.name">{{role.name}}</option>
</select>
Selected role : {{selectedRole}} //incorrect!

演示文稿按预期工作,但是当myFilter执行动态过滤器时变量selectedRole没有得到任何更新,任何想法为什么?感谢

更新:请参阅此示例:http://plnkr.co/edit/iy8lxFR3pTW4v2cbAU8V 然后尝试为select选择相同的值,您会注意到所选数据无法正确更新

2 个答案:

答案 0 :(得分:0)

您正在使用相同的变量名称

<select [(ngModel)]="selectedRole" name="role">
<option *ngFor="let role of roles| myFilter" [ngValue]="role.name">{{role.name}}</option>
</select>
Selected role : {{selectedRole}} //works

原因:role是在ngFor中用于迭代的对象。

答案 1 :(得分:0)

试试这个?

<select [(ngModel)]="selectedRole" name="role">
<option *ngFor="let role of roles| myFilter" [value]="role">{{role.name}}</option>
</select>
Selected role : {{selectedRole}}