据我所知,不支持旧方式。
我有一个解决方法,但我不知道这是否是一种干净的方法;-)
您可以实现一个自定义管道(dump
以下示例中的那个)放在管道链的末尾,以将过滤后的值保存到组件中
@Pipe({
name: 'filter'
})
export class FilterPipe {
(...)
}
@Pipe({
name: 'sort'
})
export class FilterPipe {
(...)
}
@Pipe({
name: 'dump'
})
export class DumpPipe {
constructor(@Inject(forwardRef(() => AppComponent)) app:AppComponent) {
this.app = app;
}
transform(array: Array<string>, args: string): Array<string> {
this.app.save(array);
return array;
}
}
@Component({
selector: 'my-app',
template: `
<div>
<span *ngFor="#l of (list | filter | sort)">{{l}}</span>
</div>
`,
pipes: [ FilterPipe, SortPipe, DumpFilter ]
})
export class AppComponent {
constructor() {
this.list = [ 'n', 'g', 'a', 'u', 'r', 'l' ];
}
save(array) {
console.log('save array = '+array);
}
}
计算表达式时,dump
管道使用过滤和排序的值调用save
组件的方法。
这是相应的 plunkr:https ://plnkr.co/edit/xv4BTq7aCyKJSKcA9qB9?p=preview
希望它可以帮助你,蒂埃里