从 Ionic 4 模式内的按钮路由到选项卡
Routing to a tab from a button inside a modal in Ionic 4
我在 Ionic 4 Modal 中有一个按钮,我希望单击该按钮可以打开一个页面,该页面是一个选项卡。
我可以验证该选项卡是否存在,因为我已直接导航到它。
这是我的按钮代码:
<ion-button expand="block" class="signup" margin (click)="signupPage()">Don't have account? Sign Up</ion-button>
如您所见,单击此处激活此功能的按钮会加载点击功能:
signupPage() {
this.modalController.dismiss();
this.router.navigate([`/tabs/(signup:signup)`]);
}
模式关闭,但我没有转到选项卡,这是我目前遇到的错误。
ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'tabs'
Error: Cannot match any routes. URL Segment: 'tabs'
提前感谢您的帮助!
按如下方式更改您的标记和功能。您应该更改选项卡路由,但您使用 Angular 路由器来更改路由。
[attr.href]
会将 href
属性添加到 ion-button
元素。
<ion-button expand="block" class="signup" margin [attr.href]="'/tabs/(signup:signup)'" (click)="signupPage()">Don't have account? Sign Up</ion-button>
signupPage() {
this.modalController.dismiss();
// you don't need to route from here anymore.
}
也可以通过以下方式完成:
在您的按钮上 tap/click 事件:
signupPage() {
this.modalController.dismiss(dismissed: true,
route: `/tabs/(signup:signup)`);
}
在 return await modal.present();
之前显示模态的位置
//According to your requirements
//you can use this
modal.onDidDismiss().then((result) => {
console.log(result.data);
if (result.data.route) {
this.router.navigate([result.data.route]);
}
//or you can use this one
modal.onDidDismiss().then((result) => {
console.log(result.data);
if (result.data.route) {
this.router.navigate([result.data.route], {
relativeTo: this.route,
});
}
});
我在 Ionic 4 Modal 中有一个按钮,我希望单击该按钮可以打开一个页面,该页面是一个选项卡。
我可以验证该选项卡是否存在,因为我已直接导航到它。
这是我的按钮代码:
<ion-button expand="block" class="signup" margin (click)="signupPage()">Don't have account? Sign Up</ion-button>
如您所见,单击此处激活此功能的按钮会加载点击功能:
signupPage() {
this.modalController.dismiss();
this.router.navigate([`/tabs/(signup:signup)`]);
}
模式关闭,但我没有转到选项卡,这是我目前遇到的错误。
ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'tabs'
Error: Cannot match any routes. URL Segment: 'tabs'
提前感谢您的帮助!
按如下方式更改您的标记和功能。您应该更改选项卡路由,但您使用 Angular 路由器来更改路由。
[attr.href]
会将 href
属性添加到 ion-button
元素。
<ion-button expand="block" class="signup" margin [attr.href]="'/tabs/(signup:signup)'" (click)="signupPage()">Don't have account? Sign Up</ion-button>
signupPage() {
this.modalController.dismiss();
// you don't need to route from here anymore.
}
也可以通过以下方式完成:
在您的按钮上 tap/click 事件:
signupPage() {
this.modalController.dismiss(dismissed: true,
route: `/tabs/(signup:signup)`);
}
在 return await modal.present();
之前显示模态的位置 //According to your requirements
//you can use this
modal.onDidDismiss().then((result) => {
console.log(result.data);
if (result.data.route) {
this.router.navigate([result.data.route]);
}
//or you can use this one
modal.onDidDismiss().then((result) => {
console.log(result.data);
if (result.data.route) {
this.router.navigate([result.data.route], {
relativeTo: this.route,
});
}
});