Angular 6库管道

6
如何在Angular 6库中添加自定义管道以使其在我的主应用程序中可用? 目前,我正在进行以下操作: lib.module.ts:
@NgModule({
  declarations: [
    SomePipe
  ],
  exports: [
   SomePipe
]})

在public_api.ts文件中:

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

in app.module.ts:

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

我正在尝试使用管道{{ 'something' | some}},但是SomePipetransform方法没有被调用。

3个回答

4

所以问题似乎出在这里:

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

您正在从some.pipe文件中导出所有内容,而应该从模块文件中导出模块(@NgModule)。类似于此类代码:
export * from './lib.module';

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

这里有一个示例StackBlitz供您参考。


导出 export * from './lib/pipes/some.pipe'; 是正确的,因为我的管道实现位于 some.pipe.ts 文件中。 - purplebuttercup

0

你需要进入模块并从该表单导入管道:

import { SePipeModule } from 'se-component';

在这种情况下,“se-component”是您托管管道的“库”angular的名称,“SePipeModule”是管道模块。非常重要的是,在“public-api.ts”中导出管道的名称:
export {SeTestPipe} from './lib/se-pipe/se-test-pipe';

0
自定义管道已经正确添加,并在我的应用程序中工作。还有一个错误我没有发现,涉及到一个服务(从库中导入不正确),我的@Pipe在transform()方法内部使用了该服务。因此,transform()总是似乎返回空,因为它依赖于该服务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接