路由器以角度7导航

时间:2019-10-30 08:41:52

标签: angular navigation

我有一个关于角度导航的问题 我的代码中的某处

this.router.navigate([12345678 + '/data']);

在我的应用程序路由模块中

    path: ':nossnbr/data',
    component: DataComponent,
  },

在我的组件DataComponent中(在NgOnInit中)

  ngOnInit() {
     this.routerSubscription = this.activatedRoute.params.subscribe(params => {
        // ....   do something
     });

  }

导航(this.router.navigate([12345678 +'/ data']);)不起作用。什么都没有发生,我们不进行订阅

另一方面,如果我在浏览器中直接键入url(localhost:4200/12345678 / data),则会在其中传递订阅

两个通话之间有什么区别?为什么当我使用导航时,它不通过订阅?

2 个答案:

答案 0 :(得分:0)

最佳做法

您还需要定义模块名称以及路由。如果仅在根模块中应用路由,则路由中不需要模块名称,但是在不同模块路由中,通过定义模块名称来导航,我们需要先路由,然后路由。

例如: 有2个模块:app和home模块,我们在home路由模块中定义了一条路由,即/ dashboard。

在root / app路由模块中定义模块路由,例如:

 path: 'home-module',
  loadChildren: () => import('./home/home.module').then(m => 
  m.HomeModule)
 },

在home模块的.ts中,我们将定义路由,例如:

this._router.navigate(['./home-module/dashboard/']);

答案 1 :(得分:0)

当您使用路由器导航时,您的网址是什么?

如果不是 localhost:4200 ,则需要将navigatie-url编辑为:

this.router.navigate([12345678, 'data'])