对子路由的进一步理解

在之前的时候一直觉得angular的子路由就是下一次跳转的位置,虽然若是你不用 router-outlet导出的话他会显示不出来,但也仅仅这样了,也没有细细研究过,直到遇到了这周的问题,果真错误让人进步。编程

No provider for

照着老师之前写的弹窗抄了一下,可却报了错ide

clipboard.png
该引入的也已经引入了工具

clipboard.png
当时找了一会,也没找到问题所在,就报着死马当活马医的心态,不是说缺乏provider吗,我就给他个provider学习

clipboard.png

这样一弄,显示却是能显示出来了。ui

clipboard.png

功能却无法使用spa

clipboard.png

不过这一搞,却是让我感受基础至关不扎实,顺便学习了一下provides的具体用途code

服务模块提供了一些工具服务,好比数据访问和消息。理论上,它们应该是彻底由服务提供商组成的,不该该有可声明对象。Angular 的 HttpClientModule 就是一个服务模块的好例子。

根模块 AppModule 是惟一的能够导入服务模块的模块。component

说的很清楚,不该该有可声明对象,我上面的用法显然是不对的。更详细的内容请看官方文档router

问题所在

当时因为立刻就要期中考试了,简单的问了问张喜硕组长后就去了,考试的就一直在想这个问题,明明用法和潘老师的如出一辙,个人却有这种问题,惟一的不一样就是没用router-outlet,而router-outlet是给子路由使用的,我感受本身可能发现了真相,但殊不知道为啥,考完以后回来一试。果真就成了。对象

配置子路由

const routes: Routes = [
    {
        path: '',
        component: GetLoginPrivilegesComponent,
        children: [
            {
                path: 'register',
                loadChildren: '../get-login-privileges/register-index/register-index.module#RegisterIndexModule',
            },
            {
                path: 'forgetPassword',
                loadChildren: '../get-login-privileges/forget-password/forget-password.module#ForgetPasswordModule',
            },
        ]
    },

];

@NgModule({
    imports: [RouterModule.forChild(routes)],
    exports: [RouterModule],
})
export class GetLoginPrivilegesRoutingModule {
}

界面功能全有
clipboard.png

通过尝试,是由于子路由的缘由。

对缘由的猜想

  1. 子路由与父路由是否会让组件之间有继承关系。
  2. 子路由对应的组件已经成为了父组件的一部分,因此能够自由调用父组件的方法

若是有大神解答相关疑惑,感激涕零。

一点感想

不一样的阶段对一样的问题,仍是会有不同的理解的,就像潘老师常说的有的时候找到一个让本身信服的理由就够了,虽然在编程的道路上,本身仍是很菜,不少问题仍是知其然,但殊不知其因此然,但也确实是渐渐的成长了。慢慢来吧。

相关文章
相关标签/搜索