首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2在高级模块中找不到声明。

角2在高级模块中找不到声明。
EN

Stack Overflow用户
提问于 2016-10-25 18:01:36
回答 1查看 1.1K关注 0票数 1

我有一个嵌套的模块结构,按特性组织:

代码语言:javascript
复制
/app
  /lib (not a module)
    /pipes
      capitalize.pipe.ts
  /portal
    /dashboard
  /public

每个模块都有自己的延迟加载路由。下面是我的应用程序、门户和仪表板路线,为了简洁起见,省略了导入:

代码语言:javascript
复制
**app.routing.ts**
export const appRouting: ModuleWithProviders = RouterModule.forRoot([
  {
    path: 'portal',
    loadChildren: () => require('es6-promise!./portal/portal.module')('PortalModule')
  },
  {
    path: '',
    loadChildren: () => require('es6-promise!./public/public.module')('PublicModule')
  }
])

**portal.routing.ts**
export const portalRouting: ModuleWithProviders = RouterModule.forChild([
  {
    path: 'portal',
    component: PortalComponent,
    children: [
      {
        path: 'dashboard',
        loadChildren: () => require('es6-promise!./dashboard/dashboard.module')('DashboardModule')
      },
    ],
    canActivate: [AuthenticationRequired]
  }
]);

**dashboard.routing.ts**
export const dashboardRouting: ModuleWithProviders = RouterModule.forChild([
  {
    path: '',
    component: DashboardComponent
  }
]);

我看到的问题是,如果我将声明添加到我的app.module.ts中,比如CapitalizePipe,那么它在延迟加载的模块中是不可用的。它将只在应用程序组件级别工作。

我收到:

代码语言:javascript
复制
Template Error: The pipe 'capitalize' could not be found

例如,如果我试图在dashboard.component.html中实现管道。

这是我的期望,如果我添加一个“应用级”声明,它将提供给任何模块以下。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-25 18:12:47

我看到的问题是,如果我将一个声明添加到我的app.module.ts中,比如CapitalizePipe,它在惰性加载模块中是不可用的

无论模块是否是延迟加载的,模块都是如此。@NgModule.declaratations (即组件、指令和管道)的作用域为声明它们的模块(除非该模块导出它们,否则它们可以用于导入该模块的其他模块)。

如果您有应该共享的声明,建议在共享模块中声明并导出这些声明,并将该共享模块导入您想要使用的任何模块中。

代码语言:javascript
复制
@NgModule({
  declarations: [ CapitalizePipe, otherStuff ],
  exports: [ CapitalizePipe, otherStuff ]
})
class SharedModule {}

@NgModule({
  imports: [ SharedModule ]
  declarations: [ ComponentThatUsesCapitlizePipe ],
  exports: [ ComponentThatUsesCapitlizePipe  ]
})
class OtherModule {}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40246672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档