Ионный экран погас при попытке использовать сервис REST - PullRequest
0 голосов
/ 10 мая 2018

В настоящее время я пытаюсь использовать службу RESTful в Ionic.

Я импортировал службу REST на нужных ему страницах, а также метод извлечения пользователя из базы данных.

Однако после того, как я набрал и сохранил метод и импортировал все, мой мобильный телефон ionic labЭкран пуст.Я пытался отменить все свои коды, но экран мобильного устройства остался пустым.

Могу ли я знать, почему?

Мой app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { HttpClientModule } from '@angular/common/http';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';

import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { RestProvider } from '../providers/rest/rest';

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    IonicModule.forRoot(MyApp),
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    RestProvider
  ]
})
export class AppModule {}

Мой провайдер REST rest.ts

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable()
export class RestProvider {

  apiUrl = '';

  constructor(public http: HttpClient) {
    console.log('Hello RestProvider Provider');
  }

  getUsers() {
  return new Promise(resolve => {
    this.http.get(this.apiUrl+'/users').subscribe(data => {
      resolve(data);
    }, err => {
      console.log(err);
    });
  });
}

}

Моя домашняя страница home.ts

import { Component } from '@angular/core';
import { NavController, NavParams, MenuController, AlertController } from 'ionic-angular';
import { RestProvider } from '../../providers/rest/rest';


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

  users: any;

  constructor(public navCtrl: NavController, public navParams: NavParams, public menuCtrl: MenuController, public alertCtrl: AlertController, public restProvider: RestProvider) {
      this.getUsers();
  }

  getUsers() {
    this.restProvider.getUsers()
    .then(data => {
      this.users = data;
      console.log(this.users);
    });
  }

  ionViewWillEnter() {

       this.menuCtrl.swipeEnable( false )
   }

   ionViewDidLeave() {

       this.menuCtrl.swipeEnable( true )
   }

}

Ответы [ 2 ]

0 голосов
/ 11 июля 2018

Оказывается, использование эмулятора Visual Studio может вызвать эту проблему. Использование внешних эмуляторов, таких как ваше собственное устройство, не вызовет такой проблемы.

0 голосов
/ 10 мая 2018

Используйте метод toPromise из rxjs:

import 'rxjs/add/operator/toPromise';

getUsers() {
    return this.http.get(this.apiUrl+'/users')
      .toPromise()
      .then(data => data.json())
      .catch(err => console.log(err))
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...