我有一個組件「MenuComponent」,它在邊欄中單擊鏈接時加載菜單。 「MenuComponent」是通過<router-outlet></router-outlet>
「MenusComponent」的子節點當我單擊側邊欄中的菜單時,鏈接變爲下列之一。AngOngInit不能用於路由共享組件
#/cms/menus/1/menus/1
#/cms/menus/1/menus/3
#/cms/menus/1/menus/5
#/cms/menus/1/menus/6
我想加載菜單,並設置一些屬性,每當鏈接被點擊。我這樣做;
ngOnInit() {
let menuid = this.route.snapshot.params.id;
this.LocalService.PlacementMenus.Activate(menuid);
this.Initialise();
this.LocalService.changeMenuComponents('menuList');
let placementid = this.route.snapshot.params.placementid;
this.LocalService.AllPlacements.Activate(placementid);
}
但ngOnInit第二次單擊邊欄中的菜單時不起作用。我看到有其他的鉤子,例如;
ngAfterContentInit()
ngAfterViewInit()
但是這些都不起作用。
如果包含鏈接的側邊欄組件位於router-outlet之外,那麼它將不會在導航上重新加載,如果由於某種原因,您確實需要側邊欄每次都重新生成,則需要將其放置在出口中。這就是說,觀察回答中所描述的路線變化將更爲有效。 –
我不想重新加載邊欄。我想要組件重新生成 – LogicDev