Ionic2:处理提供程序

皮托佐

在开发ionic2项目时,我创建了一个新的提供程序,但是在MyClass中设置变量时遇到了一些困难。

import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/add/operator/map';

@Injectable()
export class MyClass {
    token_acces: any;
    token_room: any;

    constructor(private http: Http) {
        this.token_acces = null;
        this.token_room = null;
    }

    login(id,pwd){
        let headers = new Headers();
        headers.append('Content-Type', 'application/json');
        this.http.post('/localhost/',
                        JSON.stringify({
                            username: id ,
                            password: pwd
                        }), {headers : headers})
                    .map(res => res.json())
                    .subscribe(data=>{
                        this.token_acces = data;
                    });
    }

    getToken(){
        return this.token_acces;
    }

}

主要的问题是,login()没有设置token_access这是null当我打电话了getToken()

此外,我有一个疑问,我的应用程序中的所有页面都使用此提供程序。例如,主页包含:

...
export class HomePage {
    id: any;
    pwd: any;

    constructor(public navCtrl: NavController, public myClassService: MyClass) { }

    login(): void{
        this.myClassService.login(this.id, this.pwd);
        this.navCtrl.push(SearchPage, { token : this.myClassService.getToken()});
    }
}

例如,如果我对另一个页面执行相同操作:

export class SearchPage {
    token: any;

    constructor(public navCtrl: NavController, public myClassService: MyClass) { }
...

我使用的是同一个实例还是MyClass的不同实例,因此无法获取上一页中设置的值?

萨加尔·库尔卡尼(Sagar kulkarni)

在您的代码的MyClass中:

login(id,pwd){
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    return Observable.create(observer => {
        this.http.post('/localhost/', JSON.stringify({
                        username: id ,
                        password: pwd
                    }), {headers : headers})
        .map(res => res.json())
        .subscribe(data => {
            this.token_acces = data;
            observer.next(data);
        },(err) => {
            console.log("Error occurred: ", err);
            observer.error(err);
        });
    });
}

在HomePage类或任何其他调用类/代码方法中:

login(): void{
    this.myClassService.login(this.id, this.pwd).subscribe((data) => {
        this.navCtrl.push(SearchPage, { token : this.myClassService.getToken()});
    },
    (err) => {
        console.log("Error occurred : ", err);
    });
}

您甚至不需要使用getToken()你可以只用datasubscribe()这会给你的令牌必要的数据。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ionic2 提供程序“无法加载模块”

来自分类Dev

从子@Input setter访问提供程序方法-Ionic2 / Angular2

来自分类Dev

尝试使用Ionic2和Typescript中的http请求与通用提供程序进行oauth2

来自分类Dev

Ionic2 DI:提供组件的接口实现

来自分类Dev

Ionic2应用程序需要安装打字

来自分类Dev

构建ionic2应用程序失败

来自分类Dev

Ionic2与流星

来自分类Dev

测试ionic2组件:没有表格提供者

来自分类Dev

使用Cordova或Ionic2?

来自分类Dev

Ionic2 NavController popToRoot

来自分类Dev

Ionic2 网格列

来自分类Dev

为什么我的Ionic2应用程序始终作为Android应用程序使用?

来自分类Dev

为什么我的Ionic2应用程序始终作为Android应用程序使用?

来自分类Dev

Ionic 2 - 错误:没有本机存储提供程序

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用ionic2退出应用程序时如何清除localStorage

来自分类Dev

为什么使用Ionic2创建的应用程序的www文件夹为空

来自分类Dev

将Wikitute集成到Ionic2移动应用程序

来自分类Dev

科尔多瓦-插件打印机崩溃的Ionic2应用程序

来自分类Dev

IONIC2使用Firebase构建自定义音频流应用程序

来自分类Dev

在 IONIC2 应用程序中禁用 chrome://inspect 调试

来自分类Dev

如何在网站上展示 Ionic2 应用程序?

来自分类Dev

使用 ionic2 包括 Mongodb 开发应用程序需要哪些基本重要的东西?

来自分类Dev

在真实设备上测试 Ionic2 应用程序

来自分类Dev

window.requestAnimationFrame() 在 Ionic2 应用程序中不起作用

来自分类Dev

Ionic2警报与下拉菜单?

来自分类Dev

访问ionic2中的全局“角度”

Related 相关文章

  1. 1

    ionic2 提供程序“无法加载模块”

  2. 2

    从子@Input setter访问提供程序方法-Ionic2 / Angular2

  3. 3

    尝试使用Ionic2和Typescript中的http请求与通用提供程序进行oauth2

  4. 4

    Ionic2 DI:提供组件的接口实现

  5. 5

    Ionic2应用程序需要安装打字

  6. 6

    构建ionic2应用程序失败

  7. 7

    Ionic2与流星

  8. 8

    测试ionic2组件:没有表格提供者

  9. 9

    使用Cordova或Ionic2?

  10. 10

    Ionic2 NavController popToRoot

  11. 11

    Ionic2 网格列

  12. 12

    为什么我的Ionic2应用程序始终作为Android应用程序使用?

  13. 13

    为什么我的Ionic2应用程序始终作为Android应用程序使用?

  14. 14

    Ionic 2 - 错误:没有本机存储提供程序

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

    使用ionic2退出应用程序时如何清除localStorage

  19. 19

    为什么使用Ionic2创建的应用程序的www文件夹为空

  20. 20

    将Wikitute集成到Ionic2移动应用程序

  21. 21

    科尔多瓦-插件打印机崩溃的Ionic2应用程序

  22. 22

    IONIC2使用Firebase构建自定义音频流应用程序

  23. 23

    在 IONIC2 应用程序中禁用 chrome://inspect 调试

  24. 24

    如何在网站上展示 Ionic2 应用程序?

  25. 25

    使用 ionic2 包括 Mongodb 开发应用程序需要哪些基本重要的东西?

  26. 26

    在真实设备上测试 Ionic2 应用程序

  27. 27

    window.requestAnimationFrame() 在 Ionic2 应用程序中不起作用

  28. 28

    Ionic2警报与下拉菜单?

  29. 29

    访问ionic2中的全局“角度”

热门标签

归档