Angular CLI页面生成器路由和延迟加载

时间:2019-01-21 12:15:37

标签: angular ionic-framework router

我对CLI如何生成页面以及主要是路由生成有疑问。使用ng CLI生成新页面时,将创建页面module / html / spec / scss并更新路由模块。

1)默认情况下,页面以延迟加载的方式添加到app.routing.module中。

 { path: 'test', loadChildren: './test/test.module#TestPageModule' },

还有test.module中的路由:

const routes: Routes = [
  {
    path: '',
    component: TestPage
  }
];

还添加了一个空路径=>为什么?我想我可以删除所有内容,它不会改变任何东西吗?

2)我在这里读过:limiting-provider-scope-by-lazy-loading-modules,服务的实例与延迟加载的模块不同。 然后,如果我希望在整个应用程序中都可以使用某项服务,尽管该事件具有该属性,但该事件

@Injectable({
  providedIn: 'root'
})

延迟加载的模块将有一个新实例吗?还是我不明白。

该示例很简单,我有一个获取用户项列表的服务,该服务将该列表存储为属性。当我访问一个项目的详细信息时,在一个延迟加载的页面中,注入服务中的用户列表为空,因此我想这是它的新实例... 在主/详细实现的示例中,我看到了一些服务,这些服务在导航到该服务时会获取详细信息,但不重用列表,而其他服务已经内置了该服务。

我想知道,如果CLI有这样的限制,为什么CLI会采用这种方式呢?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 当您点击模块的url(在您的情况下为“ test”)时,空路径将告诉路由器要加载的组件。
  2. 为了在整个应用程序中为服务创建单个实例,您需要导入服务并将其添加到根模块(例如app.module.ts)的提供程序列表中