6

如何在 Angular 6 库中添加自定义管道以使其在我的主应用程序中可用?目前我正在这样做:lib.module.ts:

@NgModule({
  declarations: [
    SomePipe
  ],
  exports: [
   SomePipe
]})

在 public_api.ts 中:

export * from './lib/pipes/some.pipe';

在 app.module.ts 中:

import { LibModule } from 'lib';
@NgModule({
  ...
  imports: [
    LibModule
  ]
 ...
})

我正在尝试使用管道,{{ 'something' | some}}但未调用transform方法。SomePipe

4

3 回答 3

4

所以问题似乎在这里:

export * from './lib/pipes/some.pipe';

some.pipe当您应该@NgModule从模块文件中导出模块()时,您正在从文件中导出所有内容。像这样的东西:

export * from './lib.module';

这样做应该可以解决问题。

这是您参考的示例 StackBlitz

于 2018-11-20T15:40:07.070 回答
0

您需要转到模块并从此表单导入管道:

import { SePipeModule } from 'se-component';

在这种情况下,“se-component”是托管管道的“库”角度的名称,而“SePipeModule”是管道模块。在“public-api.ts”中导出管道名称非常重要:

export {SeTestPipe} from './lib/se-pipe/se-test-pipe';
于 2022-02-01T20:49:28.367 回答
0

自定义管道已正确添加,并且正在我的应用程序中工作。还有一个我没有看到的错误,关于我的@Pipe 在 transform() 方法中使用的服务(从库中错误地导入)。因此,transform() 似乎总是什么都不返回,因为它依赖于该服务。

于 2018-11-21T16:07:19.573 回答