2017-10-31 20 views
0

여러 구성 요소가 데이터를 채우는 데 사용할 메뉴 개체 (메뉴 저장소)가 있습니다. 페이지를로드 할 때서비스의 각도 매개 변수 라우터에 액세스

나는 서버에서로드 메뉴를 가지고 가게로 노출하고 싶은

private subject = new BehaviorSubject<Menu>(state); 
private menuStore = this.subject.asObservable().filter((m) => m != undefined).distinctUntilChanged(); 

menu$ = this.menuStore.select<MenuItem>('menu'); 

그래서 내가 가지고있는 질문은 결과를 얻을 수 그리고 각 구성 요소 this ... 현재 우리는 "menuService"의 생성자에서 액션을 수행합니다. 내가 이해하기에 이것은 앵귤러 컨트롤 (Angulars control) (?)에 있지 않기 때문에 이것은 모범 사례가 아닙니다.

그러면 어떻게해야합니까? menu.store.ts에서 "OnInit 구현"을 사용해야합니까? 또는 생성자에서이 작업을 수행하는 것이 타당하며 ok입니까? 그러면이 문제가 해결 될 수 있습니까?

+1

라이프 사이클 후크가 구독 끝났다. – jonrsharpe

+0

아 .. 좋아! 나는 그걸 의심 스러웠습니다.하지만 모든 구성 요소를 구독하지 않고 어떻게 할 수 있습니까? – Mackelito

+1

서비스는'ngOnDestroy' 훅을 사용합니다. –

답변

0

나는 "PageComponents"를 작성하고 해당 구성 요소 만 * 구성 요소 *에 대한

this.route.params.subscribe((params: Params) => { 
    this.menuService.setActiveItem(params.id) 
})