2017-02-04 7 views
1

Как передать объект json из одного компонента в другой при маршрутизации.Pass json data angular2 routing

Я думаю, это может быть достигнуто с помощью службы, но мне нравится знать, можно ли это сделать с помощью самой маршрутизации.

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

{ 
    path: 'heroes', 
    component: HeroListComponent, 
    data: { title: 'Heroes List' } 
    } 

Благодаря

ответ

0

Он может, но вам нужно использовать JSON.stringify и преобразовать объект в параметры маршрута и передать их как часть маршрута.

+0

Таким образом, они сделают их видимыми в URL-адресе. правильно ? пока параметры мало, это нормально, но в моем случае я не хочу, чтобы он был видимым в URL-адресе –

+0

Правильно, они будут видны в URL-адресе. Услуга - это ваш единственный вариант с какой-то моделью, которая может сохранять состояния между компонентами. –

0

Как уже упоминалось в другом ответе, невозможно передать объект через маршрутизацию без стробируемого объекта, что означает, что объект будет отображаться в URL-адресе. Один из способов избежать использования службы и то, что ваш объект будет отображаться в URL-адресе, относится к вашему localStorage. Перед маршрутизации вы должны установить объект в localStorage и после маршрутизации выборки объекта из localStorage, так что первое что-то вроде этого:

localStorage.setItem('myObject', JSON.stringify(theObject)); 

Тогда я сделал бы функцию в службе для получения элемента после маршрутизации:

getMyObject() { 
    return JSON.parse.getItem('myObject'); 
} 

И после навигации просто вызвать эту функцию:

this.myObject = this.myService.getMyObject(); 

Надежда это жизнеспособное решение для вас! :)

+0

Объект все еще виден, но в консоли есть другой способ? – Diego

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

  • Нет связанных вопросов^_^