Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在2组件中使用角度为4的管道_Angular_Angular Datatables_Angular2 Custom Pipes - Fatal编程技术网

Angular 在2组件中使用角度为4的管道

Angular 在2组件中使用角度为4的管道,angular,angular-datatables,angular2-custom-pipes,Angular,Angular Datatables,Angular2 Custom Pipes,我有一个基于组件的angular4应用程序,在我使用的每个组件DataTable插件和自定义DataFilterPipe,当我在每个组件中导入如下内容时,我得到的错误是错误:未捕获(承诺):错误:类型DataFilterPipe是两个模块声明的一部分。请考虑将数据流管道移动到更高的模块。然后我创建了一个名为dataFilterModule的新模块 进口: import {DataTableModule} from "angular2-datatable"; import {DataFilterP

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

进口:

import {DataTableModule} from "angular2-datatable";
import {DataFilterPipe} from "../plugins/datatable/datafilterpipe";
import {HttpModule} from "@angular/http";
import {FormsModule} from "@angular/forms";
数据过滤器模块:

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 {}
然后将此模块导入myAppModule但是!!我得到的错误是:

The pipe 'dataFilter' could not be found
我添加了导出的dataFilterModule,如下所示,但没有任何好消息

export class dataFilterModule {
   static forRoot() {
     return {
         ngModule: DataFilterPipe,
         providers: [],
     };
   }
}
编辑: 我的自定义筛选器:

import * as _ from 'lodash';
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'dataFilter'
})
export class DataFilterPipe implements PipeTransform {

    transform(array: any[], query: string): any {
        if (query) {
        return _.filter(array, row=>row.name.indexOf(query) > -1);
     }
    return array;
  }
 }

答案是共享模块。查看我几天前的回答。

答案是共享模块。检查我几天前回答的。

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

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

创建SharedModule后,我应该将其导入AppModule或任何我需要的组件?是的,关键是确保导出其他模块中可能需要的组件、指令…管道。一旦您将共享模块导入到您需要的模块中,您就可以将各个组件、指令等导入到模块的特定部分。谢谢,但是无法找到管道“dataFilter”错误仍然存在。请看以下要点:这听起来可能很疯狂,但您是否尝试过关闭服务器并重建应用程序?创建SharedModule后,我应该将其导入AppModule或任何我需要的组件?是的,关键是确保您导出组件,指令…其他模块中可能需要的管道。一旦您将共享模块导入到您需要的模块中,您就可以将各个组件、指令等导入到模块的特定部分。谢谢,但无法找到管道“dataFilter”错误仍然存在。请查看以下要点:这听起来可能很疯狂,但您是否尝试过关闭服务器并重建应用程序?使用“forRoot”共享根目录并将共享模块aim导入应用程序模块。使用“forRoot”共享根目录并将共享模块aim导入应用程序模块。