Angularjs 为什么过滤器不适用于角度2?
我试图在Angular 2中使用Angularjs 为什么过滤器不适用于角度2?,angularjs,angular,angular2-routing,Angularjs,Angular,Angular2 Routing,我试图在Angular 2中使用管道或过滤器。我发现这个错误: zone.js@0.6.17?main=browser:484 Unhandled Promise rejection: Template parse errors: The pipe 'search' could not be found ("<div> <ul> <li [ERROR ->]*ngFor="let tt of t
管道
或过滤器。我发现这个错误:
zone.js@0.6.17?main=browser:484 Unhandled Promise rejection: Template parse errors:
The pipe 'search' could not be found ("<div>
<ul>
<li [ERROR ->]*ngFor="let tt of todoService.todo| search">
<row-item [t]='tt'></row-item>
"): TodoList@2:21 ; Zone: <root> ; Task: Promise.then ; Value: Error: Template parse errors:(…) Error: Template parse errors:
The pipe 'search' could not be found ("<div>
我正在使用这样的过滤器
<li *ngFor="let tt of todoService.todo| search">
您需要将管道添加到声明中
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent,Todo,TodoList,TodoRow,TodoSearch],
bootstrap: [ AppComponent ]
})
export class AppModule { }
对于null
值,还应确保管道安全:
export class TodoSearch implements PipeTransform{
transform(value){
if(!value) {
return;
}
return value.filter((i) =>i.title.startsWith('s'));
}
}
当前
@NgModule()
的声明中需要添加哪些内容,以及当前@NgModule()
的其他组件中要使用的组件、指令和管道。如果导入另一个模块以使用其中的组件、指令和管道,则无需再次将它们添加到声明中(它们应位于导入模块的导出中)。
export class TodoSearch implements PipeTransform{
transform(value){
if(!value) {
return;
}
return value.filter((i) =>i.title.startsWith('s'));
}
}