微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据异步事件在ionic2和angular2 app中设置根页面

我正在尝试启动一个基本的ionic2应用程序,并想知道我的初始应用程序加载的时间是否是一个问题.我想要做的是如果用户未经过身份验证,则将起始页面设置为登录页面.

我最初将根页面设置为主页,然后当异步调用从localstorage返回时,如果用户未经身份验证,我会将根页面重置为登录页面.然而,这导致他们看到一个页面然后被发送到另一个页面的闪烁.

看起来我想要做的就是在显示任何屏幕之前等待本地存储调用.

我的问题是这样的:现在代码就会出现,是否会出现错误情况,平台准备好在根页面设置之前触发,从而导致某种问题?我应该如何处理Ionic 2和Angular 2中的这种情况?我应该将get localStorage调用同步,还是应该将其填充到Angular 2中属于应用程序或页面生命周期的另一个事件或方法中?

我应该使用某种可观察或等待语法吗?

export class MyApp {
  rootPage: any;
  local: Storage = new Storage(LocalStorage);

  constructor(platform: Platform) {

    this.local.get('user').then(user => {
      if (user) {
        this.rootPage = TabsPage;
      } else {
        this.rootPage = LoginPage;
      }
    });

    platform.ready().then(() => {
      // Will this ever fire before the rootpage is set?
      StatusBar.styleDefault();

    });
  }
}
您不需要向本地存储添加异步调用,如下例所示:
https://github.com/RedFroggy/ionic2-nfc-app/blob/master/app/app.ts#L52

您只需检查本地存储中的用户是否存在,并将rootPage设置为HomePage或LoginPage.

原文地址:https://www.jb51.cc/angularjs/141096.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐