来自共享模块的组件内的管道

时间:2017-11-13 06:01:28

标签: angular angular-components angular-pipe angular-module

我一直在自己构建一个NG应用程序,并使用共享模块中的组件中的管道来解决问题。

共享模块(删除所有其他内容):

import { NgModule } from '@angular/core';
import { FilterByPipe, OrderByPipe } from './pipes/index';


@NgModule({
    imports: [],
    declarations: [FilterByPipe],

    exports: [
        //Pipes
        FilterByPipe,
    ],

    providers: [FilterByPipe]

})
export class SharedModule { }

我的问题是,如何在其他组件代码中使用导出的管道FilterByPipe?即。

export class ViewSomethingComponent implements OnInit {
    constructor(private _filterBy: FilterByPipe)

    filterSomething(data){ this._filterBy.transform(data,{a:'value'})}
}

我已经尝试直接导入管道,但是这给了我依赖性问题,因为它不是从父模块提供的。除了将pip添加到父模块,然后将其用作依赖项注入的提供程序之外,还没有其他方法可以使用共享组件导出的管道吗?

1 个答案:

答案 0 :(得分:1)

PromotionFact导入您的根SharedModule

然后,您可以在AppModule中的任何组件中轻松使用FilterByPipe

AppModule

并添加以下内容,否则您将收到错误

import { FilterByPipe } from '@angular/common';
class FilterByPipe {
  constructor(private fillterPipe: FilterByPipe) {}
  transformData(data) {
    this.fillterPipe.transform(data);
  }
}