【发布时间】:2018-08-08 19:40:39
【问题描述】:
这是我关于 Angular 的第三篇文章。 我想显示候选类型列表:Candidate[]。 我目前正在使用这样的 *ngFor 在视图中显示它:
<ul>
<li *ngFor="let candidate of candidates">
{{ candidate.name }}
</li>
</ul>
但是,我需要过滤候选人以适应用户搜索功能:
filterResults(queryString): void {
this.candidatesService.filterCandidates(queryString).subscribe(candidates => this.filteredCandidates = candidates);
this.filteredCandidates = this.filteredCandidates.filter(candidate => candidate.name == queryString);
}
问题是,该功能是在输入框的keyup时触发的。因此,过滤后的候选数组值会根据输入而变化。
有人知道我如何更新模板视图,只显示更新后的数组中的新结果吗?
【问题讨论】:
-
用
filteredCandidates替换candidates? -
@spectacularbob 不,你真的不应该:angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe
-
感谢您的建议。我实际上从候选人更改为过滤候选人,这是同一件事。我认为问题是如果变量更改,*ngFor 不会更新。我也尝试过使用异步管道,但会引发错误。
-
确实如此。该错误在您的代码中,而不是在角度。 stackblitz.com/edit/angular-x54dad?file=app%2Fapp.component.ts
-
你为什么不使用
temp[]数组-@Gabriel
标签: angular angular-components ngfor angular-template