天天看點

angularJS2中的界面跳轉

連結參數數組儲存路由導航時所需的成分:

指向目标元件的那個路由的路徑(path)

必備路由參數和可選路由參數,它們将進入該路由的URL
           

我們可以把RouterLink指令綁定到一個數組,就像這樣:

在指定路由參數時,我們寫過一個雙元素的數組,就像這樣:

this.router.navigate(['/hero', hero.id]);
           

我們可以在對象中提供可選的路由參數,就像這樣:

這三個例子覆寫了我們在單級路由的應用中所需的一切。在添加一個像危機中心一樣的子路由時,我們建立新連結數組組合。

回憶一下,我們曾為危機中心指定過一個預設的子路由,以便能使用這種簡單的RouterLink。

讓我們把它分解出來:

數組中的第一個條目标記出了父路由('/crisis-center')。

這個父路由沒有參數,是以這步已經完成了。

沒有預設的子路由,是以我們得選取一個。

我們決定跳轉到CrisisListComponent,它的路由路徑是'/',但我們不用顯式的添加它。

哇!['/crisis-center']。
           

在下一步,我們會用到它。這次,我們要建構一個從根元件往下導航到“巨龍危機”時的連結參數數組:

數組中的第一個條目用來标記出父路由('/crisis-center')。

這個父路由沒有參數,是以這步已經完成了。

數組中的第二個條目('/:id')用來标記出到指定危機的詳情頁的子路由。

詳細的子路由需要一個id路由參數。

我們把巨龍危機的id添加為該數組中的第二個條目(1)。
           

看起來是這樣的:

如果想,我們還能單獨使用危機中心的路由來重定義AppComponent的模闆。

template: `
  <h1 class="title">Angular Router</h1>
  <nav>
    <a [routerLink]="['/crisis-center']">Crisis Center</a>
    <a [routerLink]="['/crisis-center/1', { foo: 'foo' }]">Dragon Crisis</a>
    <a [routerLink]="['/crisis-center/2']">Shark Crisis</a>
  </nav>
  <router-outlet></router-outlet>
`
           

總結:我們可以用一級、兩級或多級路由來寫應用程式。 連結參數數組提供了用來表示任意深度路由的連結參數數組以及任意合法的路由參數序列、必須的路由器參數以及可選的路由參數對象。