gpt4 book ai didi

angular - Angular 2 中的全局管道

转载 作者:太空狗 更新时间:2023-10-29 17:32:36 24 4
gpt4 key购买 nike

我想让一个管道在所有应用程序中可用。根据我在 Angular 文档和互联网上读到的内容,如果我在根模块声明中声明一个管道,它会使管道在所有应用程序中可用。我有这个 AppModule 代码:

@NgModule({
imports: [ BrowserModule, NavbarModule],
declarations: [ AppComponent, TranslatePipe],
bootstrap: [ AppComponent],
})
export class AppModule { }

这是子模块:

@NgModule({
imports: [ CommonModule],
declarations: [ NavbarMenuComponent],//<---Call the pipe in this component
})

export class NavbarModule { }

管道:

@Pipe({
name: 'translate',
pure: false
})

export class TranslatePipe implements PipeTransform {
constructor() { }

transform(value: string, args: any[]): any {
return value + " translated";
}
}

但是当我在 NavbarMenuComponent 模板上调用管道时,它会抛出这个错误:

'The pipe "translate" could not be found'

如果我在子模块声明中声明管道它可以工作,但我需要使管道成为全局管道,所以当应用程序长大时,我不需要在所有模块中声明这个管道(和其他全局管道) .有没有办法使管道全局化?

最佳答案

您需要将包含管道的模块(并在declarations: []exports: [] 中)添加到imports: [...] 您当前的模块,然后它在当前模块中可用。

@NgModule({
imports: [ CommonModule],
declarations: [ TranslatePipe],
exports: [ TranslatePipe],
})
export class TranslateModule { }
@NgModule({
imports: [ CommonModule, TranslateModule],
declarations: [ NavbarMenuComponent]
})
export class NavbarModule { }

关于angular - Angular 2 中的全局管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40219666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com