我已经在angular CLI中创建了一个模块,但在创建时忘记了添加--routing,现在我想向其中添加一个路由模块.

ng init --routing在angular CLI 1.1.1版中没有帮助

推荐答案

这根本不是问题.

只需手动添加路由.

除了在app.component.html中添加<router-outlet></router-outlet>之外,--routing标志所做的就是在名为AppRoutingModule的单独模块中添加qRouterModule.forRoot()调用,并将该模块包括在AppModuleimports中.

所以,在app.module.ts中,它在AppModuleimports的基础上加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添加到AppModuleimports中...

或者在AppModuleimports中加RouterModule.forRoot([/* routes here */]).它仍然可以工作,内置了对延迟加载的支持,其他一切都可以正常工作.

附笔.

请记住,要添加子路由,您始终可以使用路由ng generate module Foo --routing生成更多模块,而不管您是否将--routing标志用于ng new.不需要担心配置或任何魔法.

Angular相关问答推荐

在状态更新后是否会再次触发ngrx效果?

第15角Cookie的单元测试用例

我们应该在Angular 从14升级到15的过程中也升级茉莉花和业力相关的依赖吗?

带信号数据源的17角material 表

选中/取消选中-复选框未正确返回TRUE或FALSE

我应该对我想要在我的Angular 17+组件中显示的任何变量使用信号吗?

当我更新S显示的数据时,为什么我的垫表用户界面没有更新?

对Angular 为17的路径使用AuthGuard

如何解决在StackBlitz中使用SPARTIER时出现无法解析解析器错误(&C)?

如何在 Angular 库中将依赖项声明为可选?

应该显示在表格中的嵌套循环

显示 1 个数据而不是所有 ngFor - Angular 11

如何从表单组中禁用的表单控件中获取值?

使用directive指令将类添加到host元素中

Angular 2: Debounce(ngModelChange)?

如何在angular 5 中获取基本网址?

错误 TS1086:无法在 Angular 9 的环境上下文中声明访问器

如何使用依赖注入扩展组件?

如何在 Angular 中使用 router.navigateByUrl 和 router.navigate

找不到 NgModule.使用 skip-import 选项跳过 NgModule 中的导入