我在寻找Angular 2的方法来做this.

我只是有一个项目列表,我想输入谁的工作是过滤列表.

<md-input placeholder="Item name..." [(ngModel)]="name"></md-input>

<div *ngFor="let item of items">
{{item.name}}
</div>

在Angular 2中,实际的做法是什么?那需要管子吗?

推荐答案

您必须根据每次输入的变化手动筛选结果,方法是将侦听器保持在input个事件以上.在进行手动筛选时,请确保维护变量的两个副本,一个是原始集合副本&;第二个是filteredCollection份.这样做的好处是可以避免在变更检测周期中进行不必要的过滤.您可能会看到更多的代码,但这会对性能更友好.

Markup - HTML Template

<md-input #myInput placeholder="Item name..." [(ngModel)]="name" (input)="filterItem(myInput.value)"></md-input>

<div *ngFor="let item of filteredItems">
   {{item.name}}
</div>

Code

assignCopy(){
   this.filteredItems = Object.assign([], this.items);
}
filterItem(value){
   if(!value){
       this.assignCopy();
   } // when nothing has typed
   this.filteredItems = Object.assign([], this.items).filter(
      item => item.name.toLowerCase().indexOf(value.toLowerCase()) > -1
   )
}
this.assignCopy();//when you fetch collection from server.

Angular相关问答推荐

如何使ngx-editor的工具栏选项以Angular中的变量或常数形式动态格式化?

Angular 16路卫单元测试可观察到的SpyObj属性

Angular前端调用ALB身份验证后的后端并重定向

Angular 空变量使用组件之间的共享服务

Angular路由不响应子路由的子路由

如何在每次Angular 编译之前执行脚本(esbuild)

HTTP POST响应失败Angular 16

当可观察到的更改时,异步管道不更新视图

MonoTypeOperatorFunction不可分配给OperatorFunction类型的参数

Angular 信号 - 使用 mutate() 与使用 forEach() react 性

Angular UNIVERSAL prerender 错误方法 Promise.prototype.then 调用不兼容的接收器 [object Object]

如何设置Angular 4背景图片?

Angular2 ngFor跳过第一个索引

无法获得 angular-material md-sidenav 的 100% 高度

如何处理解析器中的错误

初始化所有子类后的Angular 2生命周期钩子是什么?

无法在 RxJs 6 和 Angular 6 中使用 Observable.of

如何在 angular2 中的 div 的 contenteditable 上使用 [(ngModel)]?

如何导航到同级路由?

如何在 Angular Material 中设置图标的 colored颜色 ?