2017-02-04 3 views
1

라우팅하는 동안 json 객체를 한 구성 요소에서 다른 구성 요소로 전달하는 방법.json 데이터 angular2 라우팅 전달

서비스를 사용하여 달성 할 수 있다고 생각하지만 라우팅 자체를 사용하여 완료 할 수 있는지 여부를 알고 싶습니다. 경로를 정의하는 것이 도움이 될 수 있지만 구성 요소 코드에서 데이터를 전달해야 할 수있는 동안

하는 다음과 같은 데이터 속성 내가하지 말은 정적 데이터

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

감사로 볼 수 있습니다

답변

0

그것은 할 수 있지만, JSON.stringify를 사용하여 객체를 매개 변수를 라우트하고 경로의 일부로 전달해야합니다.

+0

이렇게하면 URL에 표시됩니다. 권리 ? 매개 변수가 적 으면 길지만 괜찮 으면 좋겠지 만 제 경우에는 URL에 표시하지 않으려합니다. –

+0

URL에 URL이 표시됩니다. 이 서비스는 구성 요소간에 상태를 저장할 수있는 일종의 모델을 가진 유일한 옵션입니다. –

0

다른 답변에서 이미 언급했듯이 객체가 문자열 화되지 않고 라우팅을 통해 객체를 전달할 수 없습니다. 즉 객체가 URL에 표시 될 수 있음을 의미합니다. 서비스 사용을 피하는 한 가지 방법은 객체가 URL에 표시되는 것입니다. localStorage입니다. 그런 다음

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

내가 라우팅 후 항목을 가져 오기위한 서비스에서 함수를 만들 것입니다 : 당신이 localStorage에서 객체를 설정하고 라우팅 후 localStorage에서 개체를 가져 오기 때문에,이 같은 첫 뭔가 것이다 라우팅하기 전에

그리고 탐색 후

getMyObject() { 
    return JSON.parse.getItem('myObject'); 
} 
그냥 함수를 호출 :

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

희망이 당신을 위해 실행 가능한 솔루션입니다! :)

+0

개체가 여전히 표시되지만 콘솔에 다른 방법이 있습니까? – Diego