Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Ionic 2 auth-如果存在';它是本地存储上的用户_Angular_Typescript_Ionic Framework_Ionic2_Ionic3 - Fatal编程技术网

Angular Ionic 2 auth-如果存在';它是本地存储上的用户

Angular Ionic 2 auth-如果存在';它是本地存储上的用户,angular,typescript,ionic-framework,ionic2,ionic3,Angular,Typescript,Ionic Framework,Ionic2,Ionic3,我有一个在Rails 5后端进行身份验证的Ionic 2应用程序。用户登录后,我将其信息存储在本地存储器中。 因此,一旦用户打开应用程序并且之前已登录,则应跳过登录页面。我正试图在我的app.component上执行此操作,这取决于本地存储上是否有关于用户的信息,但是storage.get方法似乎是异步的,所以它在我检查后执行,所以它总是认为它是错误的 有没有办法解决这个问题?您可以在从存储中获取值后设置根页面,如下所示: @Component({ templateUrl: 'app.h

我有一个在Rails 5后端进行身份验证的Ionic 2应用程序。用户登录后,我将其信息存储在本地存储器中。 因此,一旦用户打开应用程序并且之前已登录,则应跳过登录页面。我正试图在我的
app.component
上执行此操作,这取决于本地存储上是否有关于用户的信息,但是
storage.get
方法似乎是异步的,所以它在我检查后执行,所以它总是认为它是错误的


有没有办法解决这个问题?

您可以在从存储中获取值后设置根页面,如下所示:

@Component({
    templateUrl: 'app.html'
})
export class MyApp {
    @ViewChild(Nav) navCtrl: Nav;

    public rootPage; // Just declare the property, don't set a value here

    constructor(...) {
      this.platform.ready().then(() => {
        Splashscreen.hide();

        // Get the status from the storage
        this.storage.get('login:status').then(loggedIn => {
          this.rootPage = loggedIn ? HomePage : LoginPage;
        });
      });
    }

}

在这种情况下,如果用户已登录,则根页面将是主页,如果未登录,则是登录页面。

是的,我的问题是我在服务上使用了get功能。。。所以我必须订阅这个函数,然后执行代码。但我真的很感激,你帮了我很多忙!=)您还可以在用户登录时创建事件。。。在app.component中,您可以检查登录事件是否已发布,或者是否乐于帮助@RonanLopes:)我只是将get in the same app.component包含在其中,以向您提供总体思路,但是的,这肯定应该包含在服务中。这项工作非常有魅力。我不得不读两遍,因为我在rootPage声明中设置了根页面,导致登录屏幕闪烁了几秒钟。回答得好!我已经为我的问题找到了解决方案,将我的代码封装在条件if(this.platform.is('cordova')){}中,并且工作正常。