2016-03-19 2 views
1

Как определить дополнительные параметры маршрутизации angular2.my маршрутизации конфигурации, как это:Дополнительные параметры Хотя Routing angular2

<a [routerLink]="['../abc',{xyz: blabla}]"> 
    and 
<a [routerLink]="['../abc']"> 

{ path: '/abc/:xyz', component: abc, name: 'abc' }, // Here i want xyz as optional perameter 

так что проблема, когда я использую первый метод с параметром blabla он отлично работает, потому что на время маршрутизации я определил параметр xyz , но в случае второго способа я не хочу, чтобы отправить параметр поэтому URL становится

http://localhost:8080/#/sideNav/abc/

, который является лаяном в первый раз, но после обновления страницы ничего не показывает, что все окно становится пустым без содержимого. , так есть ли какой-либо метод для предоставления необязательных параметров при маршрутизации в угловом2.

i have also tried without defining parameters like this 

{ path: '/abc', component: abc, name: 'abc' } 

, но это вызовет ошибку в случае значения А является 1 он преобразует 1 в true

+0

Вы пробовали оба вместе? – micronyks

+0

yups, но не работает. –

+0

Почему вы использовали синтаксис '...' перед '/ abc'? – micronyks

ответ

7

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

@RouteConfig([{ 
    path: '/abc', 
    component: Abc, 
    name: 'abc'}, 
{ 
    path: '/abc/:xyz', 
    component: Abc, 
    name: 'abcXyz' 
}]) 

а затем использовать тот, который вам нужен

<a [routerLink]="['/abcXyz',{xyz: blabla}]"> 
    and 
<a [routerLink]="['/abc']"> 

Если routeCongig находится в корневом файле, используйте / перед именем суперпользователя, и если он находится на втором уровне или что-то, использовать

<a [routerLink]="['/parentRoot', {parentParams:value}, '/abc']"> 
+0

уже пробовал это не работать –

+0

кстати на данный момент' as' был изменен с помощью 'name' –

+1

спасибо, что напомнил, обновился !! –

0

Вы можете поместить оба вместе,

@RouteConfig([ 
    { path: '/abc/:xyz', component: Abc, name: 'abc' } 
    { path: '/abc', component: Abc, name: 'abc' }, 
]) 

, если это не работает должным образом, вы должны увидеть ниже,

Optional routeparams #3525
https://github.com/angular/angular/issues/3525

+0

уже пробовал это не работать –

+0

кстати на данный момент 'as' был изменен с помощью' name' –

+0

Думаю, теперь вы должны изучить вопрос, данный вам. – micronyks