使用角度4管道2组件

时间:2017-07-25 04:19:53

标签: angular angular-datatables angular2-custom-pipes

我有基础angular4应用程序组件,在每个组件中我都使用 DataTable 插件和自定义 DataFilterPipe ,当我在每个组件中导入如下所示时,我得到的错误是错误错误:未捕获(在承诺中):错误:类型DataFilterPipe是2个模块的声明的一部分。请考虑将DataFilterPipe移动到更高的模块。然后我创建了一个名为 dataFilterModule

的新模块

导入:

babel-polyfill

dataFilterModule:

import {DataTableModule} from "angular2-datatable";
import {DataFilterPipe} from "../plugins/datatable/datafilterpipe";
import {HttpModule} from "@angular/http";
import {FormsModule} from "@angular/forms";

然后在我的 AppModule 中导入此模块,但!!我得到的错误是:

import {NgModule} from "@angular/core";
import {CommonModule} from "@angular/common";
import {DataTableModule} from "angular2-datatable";
import {DataFilterPipe} from "../plugins/datatable/datafilterpipe";
import {HttpModule} from "@angular/http";
import {FormsModule} from "@angular/forms";

@NgModule({
    imports: [
        CommonModule,
        DataTableModule,
        FormsModule,
        HttpModule
    ],
    declarations: [
        DataFilterPipe
    ],
    exports: [
        DataFilterPipe
    ]
})
export class dataFilterModule {}

我添加了导出的dataFilterModule,如下所示,但没有任何好消息!

The pipe 'dataFilter' could not be found

修改 我的自定义过滤器:

export class dataFilterModule {
   static forRoot() {
     return {
         ngModule: DataFilterPipe,
         providers: [],
     };
   }
}

2 个答案:

答案 0 :(得分:2)

答案是共享模块。查看this similar post我几天前回答。

答案 1 :(得分:1)

检查@joshrathke后  joshrathke回答我找到了解决方案。您应该创建 ShareModule ,然后导入您的指令,组件或管道并使用它。您应该在所需的每个组件中导入 ShareModule