在我们的示例中将管道变更为非纯管道是非常贱简单的,只要在管道元数据中将添加pure标志为false即可。
代码如下所示:
@Pipe({ name: 'filterUser', pure: false }) export class FilterUserPipe implements PipeTransform { transform(allUsers: Array<any>, ...args: any[]): any { return allUsers.filter(user => user.id > 3); } }
这样每当我们添加新用户时,数据就会马上响应在页面上了。
在根模块声明的pipe在页面中引用有效,而在页面中引用的component中的模板则无效,这也是令我困惑的地方...
寻求了一些解决方案,大多是要注意得在根模块中声明,于是我做了个尝试,将组件也写成一个功能模块,并在组件功能模块中申明pipe,结果很欣喜,组件中的pipe生效了。
具体操作方法:
只需新建组件功能模块,并在改模块中申明pipe,myComponent.module.ts
import { NgModule } from '@angular/core'; import { IonicPageModule } from 'ionic-angular'; import { myComponent } from 'myComponent.ts'; import { HelloPipe } from "hello.pipe.ts"; @NgModule({ declarations: [ myComponent, HelloPipe ], imports: [ IonicPageModule.forChild(myComponent) ], exports: [ myComponent ] }) export class MyComponent {}
大功告成,组件的模板引用pipe得以生效.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持黑区网络。