iam在Ionic2项目上工作。在那我有登录页面以及四个选项卡。首先,必须出现登录页面。
为此我放置了
rootPage:any = LoginPage
将登录页面作为根页。
它可以很好地工作。但是我的问题是在浏览器刷新,页面重新加载并导航到登录页面,而无需留在当前页面中。
我将根页面更改为当前页面名称,并且可以很好地工作。但是我有两个包含不同选项卡的模块,因此我不能在rootPage
中给出特定的选项卡名称。如何在浏览器刷新上导航到当前页面?
至少您至少没有为登录页使用懒惰的加载。因此,最好的选择可能是使用DeepLinks Ionic Native插件。
deeplinks
它使您可以在形式中使用简单的路由逻辑:
this.deeplinks.route({
'/about-us': AboutPage,
'/universal-links-test': AboutPage,
'/products/:productId': ProductPage
}).subscribe((match) => {
// match.$route - the route we matched, which is the matched entry from the arguments to route()
// match.$args - the args passed in the link
// match.$link - the full link data
console.log('Successfully matched route', match);
}, (nomatch) => {
// nomatch.$link - the full link data
console.error('Got a deeplink that didn't match', nomatch);
});
懒惰加载
如果您可以将页面变成模块,则将自动为每个页面提供以下形式的路径:
http://localhost:8100/#/my-page
在页面组件的@IonicPage()
装饰器中,您甚至可以在URL中指定页面的名称和"段":
import { Component, OnInit } from '@angular/core';
import { IonicPage, NavController, NavParams, Platform } from 'ionic-angular';
@IonicPage({
name: 'customPageName',
segment: 'custom-path'
})
@Component({
selector: 'page-device',
templateUrl: 'device.html',
})
export class MyPage implements OnInit {
// ...
}