【问题标题】:Angular CLI page generator routes and lazy-loadingAngular CLI 页面生成器路由和延迟加载
【发布时间】:2019-06-14 19:58:42
【问题描述】:

我对 CLI 如何生成页面以及主要是路由生成有疑问。使用 ng CLI 生成新页面时,会创建页面模块/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 会使用这种方式?

感谢您的帮助。

【问题讨论】:

    标签: angular ionic-framework router


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

    【讨论】:

      猜你喜欢
      • 2017-05-17
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多