Ionic 3 - настройка глобальных переменных из данных на стороне сервера при первой загрузке приложения - PullRequest
0 голосов
/ 16 мая 2018

Я работаю над приложением ionic 3, которое требует загрузки настроек приложения с сервера, прежде чем оно перейдет на первую страницу (Tab1). В основном, мне нужно загрузить настройки, показывая пользователю заставку.

После получения настроек мне нужно присвоить глобальную переменную / объект, чтобы я мог использовать ее в приложении, не перезагружая настройки в каждой смене вкладок.

Примечание. Если пользователь убивает приложение и перезапускает его, я хочу снова загрузить настройки перед переходом на первую страницу (вкладка 1).

Какое место и событие лучше всего подходят для этой операции? Любое предложение?

Ответы [ 2 ]

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

Все это теоретический пример, поэтому вам придется создать свой собственный код

Вы можете использовать APP_INITIALIZER от Angular core Пример

app.module.ts

import { APP_INITIALIZER } from "@angular/core";
import { GlobalProvider} from "../providers/global/global";

export function init_app(global: GlobalProvider){
    // Init required providers before load the app
    // NOTE: this factory needs to return a function (that then returns a promise)
    return () => global.load()  // + any other providers...
}

@NgModule({
  ...
  providers: [
    GlobalProvider,
    {
      provide: APP_INITIALIZER,
      useFactory: init_app,
      deps: [GlobalProvider],
      multi: true
    },
    ....
  ]
})

Создать провайдера: Ионный поставщик G Global * * Пример тысячу двадцать-два * 1 023 *

Объявите ваши переменные в новом провайдере

 import { Injectable } from '@angular/core';
    /*
      Generated class for the GlobalProvider provider.
    */
    @Injectable()
    export class GlobalProvider {

      public myGlobalVar: string;

      public async load() { ... }

    }

Используйте это в других .ts файлах, как показано ниже

import { GlobalProvider } from "../../providers/global/global";

constructor( public global: GlobalProvider) { }

Использовать в файле шаблона, как показано ниже

<ion-content>
  <h1>{{ global.myGlobalVar }} </h1>
</ion-content>
0 голосов
/ 16 мая 2018

Вы можете сделать это в app.component.ts, может быть в функции initialize (), вызываемой в конструкторе.Функция может быть такой:

protected initializeApp() {   
    this.platform.ready().then(() => {
      //Your code
     });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...