我已经在angular CLI中创建了一个模块,但在创建时忘记了添加--routing,现在我想向其中添加一个路由模块.
ng init --routing
在angular CLI 1.1.1版中没有帮助
我已经在angular CLI中创建了一个模块,但在创建时忘记了添加--routing,现在我想向其中添加一个路由模块.
ng init --routing
在angular CLI 1.1.1版中没有帮助
这根本不是问题.
只需手动添加路由.
除了在app.component.html
中添加<router-outlet></router-outlet>
之外,--routing
标志所做的就是在名为AppRoutingModule
的单独模块中添加qRouterModule.forRoot()
调用,并将该模块包括在AppModule
的imports
中.
所以,在app.module.ts
中,它在AppModule
的imports
的基础上加AppRoutingModule
.
AppRoutingModule
被定义为app-routing.module.ts
,它被创建为from this template.
它很小,我会把它复制到这里:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{
path: '',
children: []
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
{path: '', children:[]}
只是一个您需要替换的占位符(我知道是因为我把它添加到了源代码中).它只是确保路由在您没有任何路由时不会抱怨<router-outlet>
.
所以,回到问题what should you do?要么将文件复制到项目中,使其看起来像原始CLI,然后将AppRoutingModule
添加到AppModule
的imports
中...
或者在AppModule
的imports
中加RouterModule.forRoot([/* routes here */])
.它仍然可以工作,内置了对延迟加载的支持,其他一切都可以正常工作.
附笔.
请记住,要添加子路由,您始终可以使用路由ng generate module Foo --routing
生成更多模块,而不管您是否将--routing
标志用于ng new
.不需要担心配置或任何魔法.