gpt4 book ai didi

Angular 2 - 多个模块中的管道重用 - 找不到错误或重复定义

转载 作者:太空狗 更新时间:2023-10-29 16:50:08 25 4
gpt4 key购买 nike

我正在处理 Angular 2 的最终版本。

我已经声明了两个模块:主应用和一个用于设置页面

主模块正在声明全局管道。该模块还包括设置模块

app.module.ts

@NgModule({
imports: [BrowserModule, HttpModule, routing, FormsModule, SettingsModule],
declarations: [AppComponent, JsonStringifyPipe],
bootstrap: [AppComponent]
})
export class AppModule { }

settings.module.ts

@NgModule({
imports: [CommonModule, HttpModule, FormsModule, routing],
declarations: [SettingsComponent],
exports: [SettingsComponent],
providers: []
})
export class SettingsModule { }

当尝试在设置模块中使用管道时,我收到一条错误消息,提示找不到管道。

zone.min.js?cb=bdf3d3f:1 Unhandled Promise rejection: Template parse errors:
The pipe 'jsonStringify' could not be found (" <td>{{user.name}}</td>
<td>{{user.email}}</td>
<td>[ERROR ->]{{user | jsonStringify}}</td>
<td>{{ user.registered }}</td>
</tr"): ManageSettingsComponent@44:24 ; Zone: <root> ; Task: Promise.then ; Value: Error: Template parse

如果我将管道包含到设置模块中,它会提示两个模块具有相同的管道。

zone.min.js?cb=bdf3d3f:1 Error: Error: Type JsonStringifyPipe is part of the declarations of 2 modules: SettingsModule and AppModule! Please consider moving JsonStringifyPipe to a higher module that imports SettingsModule and AppModule. You can also create a new NgModule that exports and includes JsonStringifyPipe then import that NgModule in SettingsModule and AppModule.

json-stringify.pipe.ts

@Pipe({name: 'jsonStringify'})
export class JsonStringifyPipe implements PipeTransform {
transform(object) {
// Return object as a string
return JSON.stringify(object);
}
}

对此有什么想法吗?

最佳答案

如果你想在不同的模块中使用管道,那么将声明管道的模块添加到你想要重用的模块的 imports: [...]管道,而不是将其添加到多个模块的 declarations: [] 中。

例如:

@NgModule({
imports: [],
declarations: [JsonStringifyPipe],
exports: [JsonStringifyPipe]
})
export class JsonStringifyModule { }
@NgModule({
imports: [
BrowserModule, HttpModule, routing, FormsModule, SettingsModule,
JsonStringifyModule],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule { }
@NgModule({
imports: [
CommonModule, HttpModule, FormsModule, routing,
JsonStringifyModule],
declarations: [SettingsComponent],
exports: [SettingsComponent],
providers: []
})
export class SettingsModule { }

关于Angular 2 - 多个模块中的管道重用 - 找不到错误或重复定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40015057/

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