получение данных с сервера и передача их по страницам Angular - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть служба, которая извлекает данные из конечной точки API в моем ионном приложении. Вот функция, которая получает данные с сервера.

getDriverInfo(username)
{
return this.http.get(this.base_url + 'user/' + username, {
  headers: new HttpHeaders().set('Authorization', 'Bearer ' + this.access_token)
});
}

У меня есть страница, которая получает данные и отвечает.

 handleResponse(data) {

  this.db.getDriverInfo(data.username).subscribe(
          resp => {
              this.driverData = resp;
              this.driverId = this.driverData.driver.id;
              this.driverUserid = this.driverData.id;
              console.log(this.driverData);
          }
  );
  this.token.handle(data.access_token);
  this.navCtrl.setRoot(HomePage, {
        driverData: this.driverData,
        driverId: this.driverId,
        driverUserId: this.driverUserId
  });
}

toDash()
{
let loading = this.loadCtrl.create({
  content:'Logging In...'
});

loading.present();

this.auth.login(this.form).subscribe(
 data => { 
   this.handleResponse(data);
    loading.dismiss();
 },
 error => { 
   this.handleError(error);
 loading.dismiss();
 }
);

}

console.log () this.driverData предоставляет мне данные.

на своей домашней странице я пытаюсь сохранить данные в переменных, например,

 constructor(public navCtrl: NavController, public platform: Platform,
          public geo: Geolocation, public loadingCtrl: LoadingController,
          public driverProvider: DriverProvider, public alertCtrl: AlertController,
          public navParams: NavParams, public modalCtrl: ModalController, public db: DbProvider
          ) {
            this.driverDetails = this.navParams.get('driver_data');
            this.driverUserId = this.navParams.get('driver_user_id');
            this.driverDBId = this.navParams.get('driver_id');
            this.isOnline = this.navParams.get('isOnline');
            console.log(this.driverDetails);
          }

но console.log выдаёт мне неопределённое. Как я могу эффективно передать данные?

1 Ответ

0 голосов
/ 13 ноября 2018

В HomePage измените следующее:

this.driverDetails = this.navParams.get('driver_data');

на следующее:

 this.driverDetails = this.navParams.get('driverData');

Когда вы отправляете данные на вторую страницу, вы используете атрибут driverData, таким образом, чтобы получить этот атрибут, вам нужно добавить его точно так же в get()

Чтобы получить все данные, вы можете сделать следующее внутри конструктора:

this.allData = this.navParams.data;
console.log(this.allData);

Проверьте документы здесь для получения дополнительной информации.

...