来自全局变量的数据

时间:2018-05-11 13:10:09

标签: ionic-framework get ionic3

首先,我想为我的可怜的英国人道歉,我试图通过我自己解决这几天,我不能,我真的需要为学校项目解决这个问题。 我有一个名为“myAccountData”的变量,我试图将GET HTTP请求结果放在它上面,但它不能正常工作,这是我的代码: 的 Page.ts

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

authServiceProvider.ts:

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { NativeStorage } from '@ionic-native/native-storage';
import { EditaccountPage } from '../editaccount/editaccount';
import { AuthServiceProvider } from '../../providers/auth-service/auth-service';
import { Observable } from 'rxjs/Observable';
/**
 * Generated class for the MyaccountPage page.
 *
 * See https://ionicframework.com/docs/components/#navigation for more info on
 * Ionic pages and navigation.
 */

@IonicPage()

@Component({
  selector: 'page-myaccount',
  templateUrl: 'myaccount.html',
})
export class MyaccountPage {


  public myAccountData;
  constructor(public navCtrl: NavController, public navParams: NavParams, private nativeStorage: NativeStorage,  public authServiceProvider: AuthServiceProvider) {

  }

  setmyAccountData(data){
    this.myAccountData=this.authServiceProvider.getData("userbyid/40").subscribe( myData => {
      this.myAccountData=myData;
    });
  }
  gotoEdit(){
    this.navCtrl.push(EditaccountPage);

  }

}

当我在邮递员上运行“http://192.168.1.2/api/v1/userbyid/40”时,这就是我得到的:import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import 'rxjs/add/operator/toPromise'; import { Observable } from 'rxjs/Observable'; let apiUrl = "http://192.168.1.2/api/v1/" /* Generated class for the AuthServiceProvider provider. See https://angular.io/guide/dependency-injection for more info on providers and Angular DI. */ @Injectable() export class AuthServiceProvider { constructor(public http: HttpClient) { console.log('Hello AuthServiceProvider Provider'); } public async postData(credentials, type): Promise<any> { await this.http.post(apiUrl + type, JSON.stringify(credentials)).toPromise(); } public getData(type): Observable<any> { return this.http.get(apiUrl + type); } } 但是在page.html上如果我使用{"id":"40","firstname":"Kebbab","lastname":"Walid","email":"walid@kebbab.fr","username":"walid","password":"a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3","sexe":"","birth":"2018-04-11","telephone":"0","type":"ouvrier","emailverified":"0"}它没有显示任何内容 错误日志:

{{myAccountData.firstname}}

1 个答案:

答案 0 :(得分:0)

在我的page.html中,我使用{{myAccountData?.firstname}}代替{{myAccountData.firstname}}并且它有效