紅糖糍粑
2023-04-01 15:43:37
我有 2 個具有父子關(guān)系的組件。在父組件中,我有圖像,單擊這些圖像應(yīng)導(dǎo)航到子組件。以下是我的代碼,瀏覽器中的 URL 正在更改但頁面未導(dǎo)航。路由const routes: Routes = [ { path: 'parent', component: ParentComponent, children: [ { path: 'child', component: ChildComponent} ] }, { path: '**', component: LoginComponent }];HTML<section> <img src="imagePath" alt="" (click)="gotoProfile()"></section><div><router-outlet></router-outlet></div>TSgotoProfile() { this.route.navigate(['/parent/child']);}只有當(dāng)我使用布爾變量在按鈕單擊時顯示隱藏(這不是一個好習(xí)慣)時,導(dǎo)航才有效,如下所示。導(dǎo)航后使用布爾值會引發(fā)一些問題,在子組件中單擊后退按鈕時父組件未加載。TS gotoProfile() { this.hideParentDiv = true; this.route.navigate(['/parent/child']); }HTML <section *ngIf="hideParentDiv "> <img src="imagePath" alt="" (click)="gotoProfile()"> </section> <div *ngIf="!hideParentDiv "> <router-outlet></router-outlet> </div>誰能幫我解決這個問題,非常感謝任何幫助。
1 回答

呼啦一陣風(fēng)
TA貢獻1802條經(jīng)驗 獲得超6個贊
router -outlet是用于渲染組件的標(biāo)簽。你不應(yīng)該隱藏它。這就像在試圖進入之前擋住一扇門。如果你想“隱藏”元素,那么你應(yīng)該在導(dǎo)航層次結(jié)構(gòu)中向上移動路由器出口。這意味著您應(yīng)該在路由器中創(chuàng)建“要單擊的圖像頁面”和“詳細(xì)圖像頁面”兄弟姐妹。像這樣:
const routes: Routes = [
{
path: 'home', component: ExampleComponent, children: [
{ path: 'images-page', component: ImagesComponent },
{ path: 'image-detail-page', component: ImageDetailComponent}
]
},
{ path: '**', component: LoginComponent }
];
添加回答
舉報
0/150
提交
取消