我正在使用Ionic2 创建一个应用程序,并且要求是 - - 首次加载时的应用程序将显示“登录”页面并在登录时显示 - 将启用侧面菜单页面
初学者项目显示侧边菜单作为应用程序的根目录,并在任何其他页面打开之前首先加载 - 然后它加载其他相关页面。
如何构建一个首先加载登录页面的应用程序,然后将侧面菜单设置为主导航,并且永远不会显示登录屏幕?
我用离子1做了这个,但是没能用离子2弄清楚
请帮忙。
答案 0 :(得分:10)
一种解决方案是在登录屏幕上禁用菜单,然后在登录后启用它。
您可以通过注入MenuController
来禁用菜单,然后使用:
import {NavController, MenuController} from 'ionic-angular';
ionViewDidEnter() {
//to disable menu, or
this.menu.enable(false);
}
ionViewWillLeave() {
// to enable menu.
this.menu.enable(true);
}
答案 1 :(得分:1)
@Digital IQ,您必须将登录页面设置为现有app.ts文件中的rootPage,并使用登录页面中的 MenuController 启用菜单启用 onPageDidLeave 。 ionic conference app中提供了此示例,其中包含教程页面,然后才能进入实际应用程序。请参阅this进行菜单控制,并this(第50行)设置初始页面。
答案 2 :(得分:0)
由于用户确实已经登录,所以肯定会发生上述问题,但是在侧边菜单页面上并没有进行更改,即将其设置为当前用户。
为此,您可以使用事件API
事件是一种发布-订阅样式的事件系统,用于在您的应用程序中发送和响应应用程序级事件。
作为参考,请通过以下答案进行操作- Ionic 3 refresh side menu after login
答案 3 :(得分:-1)
我尝试了一些更容易的东西,我发现它有效。
我首次加载应用时将LogIn页面设置为root用户 - 我删除了' menuToggle'此模板中的按钮。
然后我导入组件我要重定向登录
我在LogInPage类中创建了一个singIn函数,如下所示:
signIn(){
让navRef = this.app.getComponent(' nav');
navRef.setRoot(HelloIonicPage);
}
它就像一个魅力