ionic2:如何在侧菜单中管理我们应用程序中的用户状态?

苏库玛女士

我使用 mongoDB 作为我的支持,

firebase.auth().onAuthStateChanges() 方法会在我们的应用程序中的身份验证状态更改时进行侦听。这太酷了。

但是在我的情况下没有发生同样的事情,因为我使用的支持不相似。

我将在下面分享我的代码,然后我会告诉你我试图通过 app.component.ts 中的构造函数获取用户的内容。当用户成功登录到我的应用程序时,我将获得具有唯一令牌的用户,我将其存储在 ionicStorage 中。同时我在 app.component.ts 的构造函数中调用了一个服务来从我的本地存储中获取用户。它正在工作但是当用户注册时我的 app.component 没有触发?我需要手动重新加载页面一次,然后触发根组件,调用服务,获取显示在侧菜单中的用户数据?

我不想重新加载我的页面来显示用户。

//app.component.ts

export class MyApp {

constructor(getDataService:GetDataService
,public storage: Storage) {

this.storage.get('user').then(userResp => {
this.user = userResp;
console.log('signup user : ' + JSON.stringify(userResp));
});

})}

//app.html

<ion-content>
<div *ngIf="user" padding>
Hi {‌{user.displayName}}
</div></ion-content>

谢谢,

塞巴费雷拉斯

但是当用户注册时我的 app.component 没有触发?我是否需要手动重新加载页面,然后触发根组件,调用服务,获取显示在侧菜单中的用户数据?

是的,您需要告诉应用程序组件数据已更改。但是您可以使用事件来做到这一点。因此,在您的身份验证服务中,您可以在用户登录或退出时发布一些事件:

import { Events } from 'ionic-angular';
// ...

@Injectable()
export class AccountService {

  constructor(..., public events: Events) {}

  public login(): any {

    // your logic...

    // Publish the `user:login` event, sending true
    this.events.publish('user:login', true);

  }

   public logout(): any {

    // your logic...

    // Publish the `user:login` event, sending false
    this.events.publish('user:login', false);

  }

}

然后在你的 app.component 文件中,订阅这些事件来处理每个场景:

export class MyApp {

  constructor(getDataService: GetDataService, public storage: Storage, public events: Events) {

    this.storage.get('user').then(userResp => {
      this.user = userResp;
      console.log('signup user : ' + JSON.stringify(userResp));
    });

    events.subscribe('user:login', (loggedIn) => {

      if(loggedIn) {

        // Get the user details again
        this.storage.get('user').then(userResp => {
          this.user = userResp;
          console.log('signup user : ' + JSON.stringify(userResp));
        });

      } else {

        // Reset the user details shown in the side menu
        this.user = null;

      }
    });

  }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何在ionic 2应用程序中显示多个选项卡?

来自分类Dev

我们如何在 Sinatra 应用程序中的 Slim 模板中渲染随机部分?

来自分类Dev

我们如何在单个页面应用程序中按需加载2sxc内容块?

来自分类Dev

我们如何在Android中动态更改Android应用程序图标

来自分类Dev

我们如何在React应用程序中绘制流程图?

来自分类Dev

我们如何在Android中动态更改android应用程序图标

来自分类Dev

我们如何在C#Windows应用程序中访问动态创建的控件?

来自分类Dev

如何在我们的Android应用程序中打开图像..?

来自分类Dev

如何在ionic2应用程序中推送通知?

来自分类Dev

如何在ionic2应用程序中推送通知?

来自分类Dev

如何在我们的应用程序中给出zend库路径?(在zend Framework 2.3中)

来自分类Dev

我们如何在Visual Studio Code中调试ASP.NET MVC Web应用程序?

来自分类Dev

我们如何在用React Native编写的移动应用程序中获取GPS位置

来自分类Dev

我们应该如何在ASP.NET C#应用程序中解析特定的JSON日期格式?

来自分类Dev

我们如何在同一应用程序中实现GCM以及解析通知?

来自分类Dev

我们如何在 Playstore 中拥有多个具有相同 apk 文件的应用程序?

来自分类Dev

我们如何在选择(聚焦)时更改 UWP xbox 应用程序中的按钮背景颜色

来自分类Dev

我们如何管理多个用户...。在cacheManager中

来自分类Dev

我们如何检查当前页面是否从 ionic 2 中的侧边菜单加载

来自分类Dev

如何通过我们在Android中的应用程序连接到可用的WIFI网络?

来自分类Dev

我们如何将验证码集成到iOS应用程序中?

来自分类Dev

我们如何使用iOS中的应用程序读取传入的SMS

来自分类Dev

如何直接在苹果商店中打开我们的应用程序?

来自分类Dev

我们如何知道Linux中安装了哪些应用程序?

来自分类Dev

我们如何将Captcha集成到iOS应用程序中?

来自分类Dev

用于管理我的应用程序的应用程序?

来自分类Dev

如何使我们的 android 应用程序更安全,目前我正在使用算法在共享首选项中存储数据,用户安全可以吗?

来自分类Dev

如何避免ionic2应用程序中的打字稿错误?

来自分类Dev

如何根据我们在共享菜单中选择的应用程序发送不同的文件?

Related 相关文章

  1. 1

    我们如何在ionic 2应用程序中显示多个选项卡?

  2. 2

    我们如何在 Sinatra 应用程序中的 Slim 模板中渲染随机部分?

  3. 3

    我们如何在单个页面应用程序中按需加载2sxc内容块?

  4. 4

    我们如何在Android中动态更改Android应用程序图标

  5. 5

    我们如何在React应用程序中绘制流程图?

  6. 6

    我们如何在Android中动态更改android应用程序图标

  7. 7

    我们如何在C#Windows应用程序中访问动态创建的控件?

  8. 8

    如何在我们的Android应用程序中打开图像..?

  9. 9

    如何在ionic2应用程序中推送通知?

  10. 10

    如何在ionic2应用程序中推送通知?

  11. 11

    如何在我们的应用程序中给出zend库路径?(在zend Framework 2.3中)

  12. 12

    我们如何在Visual Studio Code中调试ASP.NET MVC Web应用程序?

  13. 13

    我们如何在用React Native编写的移动应用程序中获取GPS位置

  14. 14

    我们应该如何在ASP.NET C#应用程序中解析特定的JSON日期格式?

  15. 15

    我们如何在同一应用程序中实现GCM以及解析通知?

  16. 16

    我们如何在 Playstore 中拥有多个具有相同 apk 文件的应用程序?

  17. 17

    我们如何在选择(聚焦)时更改 UWP xbox 应用程序中的按钮背景颜色

  18. 18

    我们如何管理多个用户...。在cacheManager中

  19. 19

    我们如何检查当前页面是否从 ionic 2 中的侧边菜单加载

  20. 20

    如何通过我们在Android中的应用程序连接到可用的WIFI网络?

  21. 21

    我们如何将验证码集成到iOS应用程序中?

  22. 22

    我们如何使用iOS中的应用程序读取传入的SMS

  23. 23

    如何直接在苹果商店中打开我们的应用程序?

  24. 24

    我们如何知道Linux中安装了哪些应用程序?

  25. 25

    我们如何将Captcha集成到iOS应用程序中?

  26. 26

    用于管理我的应用程序的应用程序?

  27. 27

    如何使我们的 android 应用程序更安全,目前我正在使用算法在共享首选项中存储数据,用户安全可以吗?

  28. 28

    如何避免ionic2应用程序中的打字稿错误?

  29. 29

    如何根据我们在共享菜单中选择的应用程序发送不同的文件?

热门标签

归档