我有一个包含多个下拉菜单的页面作为过滤器,我有一个函数监听器,可以在任何下拉列表更改时更新过滤。
private RegenerationType AccquireRegenerationState (int floor, int playerFloor)
{
bool entranceExists = (floorBlocks[floor].doorBlocks.Count != 0) ? true : false;
if (floor + 1 == playerFloor || !floorBlocks[floor + 1].isVisited)
{
if (entranceExists)
{
return RegenerationType.Still;
}
else
{
return RegenerationType.Limit;
}
}
else
{
if (entranceExists)
{
return RegenerationType.Prime;
}
else
{
return RegenerationType.Full;
}
}
}
但是当执行我的<select [(ngModel)]="filters.foo" (change)="update()">...</select>
<select [(ngModel)]="filters.bar" (change)="update()">...</select>
<select [(ngModel)]="filters.quz" (change)="update()">...</select>
<select [(ngModel)]="filters.lol" (change)="update()">...</select>
<select [(ngModel)]="filters.wtf" (change)="update()">...</select>
功能时,过滤器对象尚未更新。
This plunker显示问题,加载页面并在输入上键入任何内容:
如何在模型更新后调用update()
?
答案 0 :(得分:0)
找到解决方案:我们不是收听原生事件,而是收听update()
事件。
ngModelChange
I read somewhere您可以删除<select [(ngModel)]="filters.foo" (ngModelChange)="update()">...</select>
这样的括号
ngModel
但这对我没有用,所以我离开了括号,现在它完美无缺:)