我刚刚将我的应用程序更新为RC6,我注意到他们已弃用@ Componenet.pipes和@ Component.directives。
他们建议在模块类中导入它们:
@NgModule({
imports: [ BrowserModule ],
declarations: [
AppComponent,
HighlightDirective
],
bootstrap: [ AppComponent ]
})
我遵循了Angular Style Guide中建议的项目结构,所以我有一些懒文件夹(例如+ SubscriptionPage /)
问题是在我的“+ SubscriptionPage /”文件夹中,我有一些管道/指令,我只在应用程序的那一部分使用。 因此,如果我将那些管道/指令放在RootModule中,它们会以一种急切的方式加载,而不是以懒惰的方式加载。
在不丢失惰性的情况下,使用“特定部分”管道/指令的正确方法是什么。
非常感谢
答案 0 :(得分:1)
您应该为此创建一个惰性模块: (取自here)
NgModules支持通过路由器延迟加载应用程序的简单方法。一个简单的例子说明了这一点:
import {RouterModule} from ‘@angular/router’
import {NgModule} from ‘@angular/core’
@NgModule({
declarations: [ MyComponent, MyHomeRoute ],
bootstrap: [ MyComponent ],
imports: [
RouterModule.forRoot([
{ path: ‘home’, component: MyHomeRoute },
{ path: ‘lazy’, loadChildren: ‘./my-lazy-module’ }
])
})
class MyAppModule {}
您只需在路线上定义
loadChildren
属性,然后定义Angular 将在该位置获取模块并加载定义的路由 在它进入路由器配置。
import {RouterModule} from ‘@angular/router’
import {NgModule} from ‘@angular/core’
@NgModule({
declarations: [ MyLazyHome, MyLazyChild ],
imports: [
RouterModule.forChild([
{ path: ‘’, component: MyLazyHome },
{ path: ‘a’, component: MyLazyChild }
])
]
})
class MyLazyModule {}