2016-01-27 3 views
9

Есть ли api в agnular2, который позволяет передавать объекты json вместо строковых значений. Например. В Router.navigate() я могу передать параметры маршрутаКак пройти RouteData через Router.navigate в angular2

Router.navigate('routename',[{key:stringvalue}]) 

и может получить его с помощью RouteParams.get(key) : string. Но это возвращает только строковые значения. Мне нужно передать объект json.

Цените любые указатели

ответ

2

Я думаю, что это не то, что это возможно из коробки, так как маршрутизация основана на URL, и обе переменные пути и параметры запроса являются строками. Оба RouterParams и RouterData поддерживают только строковые атрибуты.

Чтобы имитировать это, я не вижу других решений, кроме кодирования ваших объектов JSON, используя JSON.stringify и анализируя их на другой стороне.

Описание: plunkr, описывающий это: https://plnkr.co/edit/jbl7v5fHQEmf4F8tpXDO?p=preview.

Надеется, что это помогает вам, Тьерри

+0

RouterParams и RouterData не является частью @ угловым/маршрутизатора больше. – eomeroff

6

Еще одно решением, которое работает использует params Достояния RouterParams. Это может быть не самый предпочтительный способ, но он работает (с Beta8).

, если вы перейдете с Router.navigate(['/myRoute',{someProperty:"SomeValue"}] вы можете получить доступ к параметрам с:

constructor(routeParams: RouteParams){ 
    let myPassedData: any = routeParams.params; 
    console.log(myPassedData.someProperty); #Prints "SomeValue" 
} 
Смежные вопросы