我正在嘗試使用 Angular 路由將資料從一個頁面傳遞到另一個頁面。第一次進入“下一個”頁面時,它作業得很好。但是,當回傳主頁并按另一項state時,路由器的不會更新。它將繼續顯示從第一次單擊專案開始的值。
任何人都知道如何使其作業?
我已經嘗試了幾件事,例如“手動”重置所有值:
pageBack() {
this.router.navigate(['tabs/homepage'], {
state: { 'space': undefined }
});
this.space = {};
this.userId = '';
this.spaceId = '';
this.spaceName = '';
}
這是代碼:
主頁.html
<div *ngIf="spaces">
<ion-item-sliding *ngFor="let space of spaces | async;">
<ion-item (click)="openspacedetailsPage(space)" detail>
<ion-icon name="ellipse-outline" start></ion-icon>
<ion-label>
{{ space.spaceName }}
</ion-label>
</ion-item>
</ion-item-sliding>
</div>
主頁.ts
openspacedetailsPage(space) {
this.router.navigate(['tabs/space-details'], {
state: { 'space': space }
});
}
space-details.page.html
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button defaultHref="tabs/activities" (click)="pageBack()"></ion-back-button>
</ion-buttons>
<ion-title>{{ spaceName }}</ion-title>
</ion-toolbar>
</ion-header>
空間-details.page.ts
pageBack() {
this.router.navigate(['tabs/homepage'], {
state: { 'space': undefined }
});
this.space = {};
this.userId = '';
this.spaceId = '';
this.spaceName = '';
}
uj5u.com熱心網友回復:
在這種情況下,您需要使用 Angular EventEmitter。
你可以檢查這個答案。EventEmitter 的正確用法是什么?
uj5u.com熱心網友回復:
我使用一種稍微不同的方法解決了使用資料服務在頁面之間傳遞值的問題:如何在 Angular 中的頁面之間傳遞物件?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/386865.html
下一篇:帶有從右到左單選按鈕的離子警報
