2016-06-19 7 views
1

Я просто пытаюсь новый маршрутизатор Угловых 2 объявленный недавно т.е. Угловые 2 @ угловым/маршрутизатор 3.0.0-alpha.7Угловые 2 @ угловой/маршрутизатор 3.0.0-alpha.7 - Доступ несколько параметров

Я знаю, что в новом маршрутизаторе, мы можем получить доступ к параметрам маршрута с использованием кода ниже:

this.activatedRoute.params 
      .map(params => params['id']) 
      .subscribe((id) => { 

      //use param id 

      }); 

может кто-нибудь, пожалуйста, руководство, как мы обрабатываем случай, в котором мы имеем несколько несколько параметров в нашем маршруте?

Я имею в виду, как мы извлекаем значения нескольких параметров из маршрута.

ответ

2

Одним из способов вы можете сделать это с помощью Parameter handling и Destructuring так:

this.activatedRoute.params 
    .map(params => [params['id'], params['p2'], params['p3']]) <== pass desired array 
    .subscribe(([id, p2, p3]) => { <== destructuring params 
     //use param id, p2 or p3 
    }); 

Смотрите также HeroDetailComponent компонент здесь http://plnkr.co/edit/JtuOAZsZPhkn1CISQaO9?p=preview

Или вы можете написать немного простой:

this.activatedRoute.params 
    .subscribe(({id, p2, p3}) => { <== destructuring params 
     //use param id, p2 or p3 
    }); 

Plunker sample (HeroDetailComponent)

+0

Большое спасибо Yurzui, можете ли вы также указать, какой подход будет лучше в случае одного параметра .map (params => params ['id']) или того, который вы предложили выше. –

+0

Я думаю, что нет предпочтительного подхода. Разрушение - это просто синтаксический сахар. Вы также можете взглянуть на подход из документации angular2 https://angular.io/docs/ts/latest/guide/router.html#get-route-parameter – yurzui

+0

Хорошо, спасибо за помощь :) –

Смежные вопросы