如何在Ionic中跨页面传递数据?

时间:2019-01-04 02:25:10

标签: android ios angular ionic-framework mobile

我有一个Ionic应用程序,该应用程序具有通常的“用户登录和注册”页面,我在其中收集用户信息,例如姓名,电子邮件,密码等,并将其存储在DB中。

用户登录后,我将拥有2-3个页面,请用户设置一些基本数据。 用户完成数据设置后,我便将用户带到主页。 在主页上有一个图标,单击该图标会将用户带到Account Settings页面,在该页面上,我从数据库中获取了用户在注册过程中输入的所有数据,例如姓名,电子邮件,地址等。

问题是我不确定如何在所有这些页面上携带或存储用户在登录时输入的电子邮件地址并使用它 在UserProvider/UserService中可以执行实际查询的位置,例如:

select * from user where email='john@abc.com';

您当然可以使用navParams中的Ionic来完成此操作,并将其传递到所有页面上,直到在最后一页上使用它为止,但这对我来说似乎不是正确的解决方案。 / p>

由于我来自Java背景,并且已经使用session对象在网页之间传递数据,因此我确信这里一定存在我不知道的等效内容。

请指导。

1 个答案:

答案 0 :(得分:0)

处理情况的最简单方法是创建一个服务文件,并在整个组件中使用该服务文件。

服务

import { Injectable } from '@angular/core';

@Injectable()
export class userService {
 userEmail: string;

 get() {
return this.userEmail;
 }
}

在您的注册页面中,您可以分配userEmail值,例如

export classRegistartion {
  name:string;


  constructor(private _userService: userService, private router: Router) {
    this.name = `Angular! v${VERSION.full}`
  }

 reistrer(): void {
    // Code to navigate to the other component
    this._userService.userEmail = //email ngmodel;
  }
}

在另一个组件中,您只需在组件中调用get()即可检索userEmail值。