Angular 2列表过滤器



我以前通过提供文本输入构建了Angular 2列表过滤器,但那是在新的@angular/forms模块发布之前,我还没有更新它。我最近开始了一个使用新表单模块的新项目,我不明白为什么我所做的不起作用。

很简单:一个设置了[(ngModel)]的文本输入,ngModel变量被传递到我的自定义管道中以过滤列表。这真的没那么难。但这是HTML:

<form class="form-horizontal" #filterForm="ngForm">
    <div class="form-group">
        <label class="control-label col-md-5">Filter List</label>
        <div class="col-md-7">
            <input type="text" name="filterText" class="form-control" [(ngModel)]="filterObj.match">
        </div>
    </div>
</form>

只是一个基本的form。如果没有form元素,我将ngModel放在input上时出错。

然后在中打印出列表:

<li *ngFor="let item of list | filter:filterObj">{{item.title}}</li>

问题是,即使在input上设置了ngModel,也不会检测到任何更改,并且列表永远不会更新。我通过在类中放入一个ngOnChanges函数来监视该变量来进行确认,它从未更改。

其他人对新的@angular/forms版本有这个问题吗?

要对此进行调试,请尝试像这样解耦ngModel

<input [value]="currentHero.firstName"
       (input)="currentHero.firstName=$event.target.value" >

最新更新