簡體   English   中英

路由器導航與 angular 7

[英]router navigate with angular 7

我有一個關於在我的代碼中某處使用 angular 導航的問題

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

在我的 app-routing.module

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

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

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

  }

導航 (this.router.navigate([12345678 + '/data']);) 不起作用。 什么都沒有發生,我們不通過訂閱 go

另一方面,如果我在瀏覽器中直接輸入 url(localhost:4200/12345678/data),它就會傳入訂閱

2個電話有什么區別? 為什么我使用導航時訂閱不 go?

最佳實踐

您還需要與路由一起定義模塊名稱。如果僅在根模塊中應用路由,則路由中不需要模塊名稱,但是在不同的模塊中路由時,通過定義模塊名稱來導航,我們需要路由,然后是路由。

例如:有2個模塊:app和home模塊,我們在home路由模塊中定義了一個路由,即/dashboard。

在 root/app 路由模塊中定義模塊路由,如:

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

在 home 模塊的 component's.ts 中,我們將定義路由,如:

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

當您使用路由器導航時,您的 url 是什么?

如果它不是localhost:4200那么您需要將 navigate-url 編輯為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM