Angular 2读取本机存储的最佳位置

Angular 2读取本机存储的最佳位置,angular,Angular,我使用的是图标2/angular 2和NativeStorage插件 我有一个允许用户更改的服务器URL,它应该被持久化。我对angular非常陌生,因此不确定在什么地方打电话到NativeStorage.getItem是最好的 显然,当用户启动应用程序时,它应该是第一个地方,所有内容都已初始化 我当前在加载屏幕上挂起应用程序的代码: import { Component } from '@angular/core'; import { Platform } from 'ionic-angula

我使用的是图标2/angular 2和NativeStorage插件

我有一个允许用户更改的服务器URL,它应该被持久化。我对angular非常陌生,因此不确定在什么地方打电话到NativeStorage.getItem是最好的

显然,当用户启动应用程序时,它应该是第一个地方,所有内容都已初始化

我当前在加载屏幕上挂起应用程序的代码:

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { NativeStorage } from 'ionic-native';

import { HomePage } from '../pages/home/home';
@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage:any = HomePage;

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, storage: NativeStorage) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      statusBar.styleDefault();
      splashScreen.hide();
       platform.ready().then(() => {

          NativeStorage.getItem('CHAT_SERVER_HOST').then(
            (val) => { alert("init:" + val); },
            error => alert(error)
            );

      });
    });
  }
}

您应该在组件中运行它。在
this.platform.ready()的内部,然后(()=>{})
,放入本机存储代码。这可以确保cordova在您拨打电话时可以处理本机插件


如果希望立即加载本机存储数据,请在
构造函数
函数、ngOnInit或ionViewDidLoad中编写此代码。

我们从app.module.ts和config开始

@NgModule({
  declarations: [
    MyApp
  ],
  imports: [
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
  ],
  providers: []
})
export class AppModule {}  
myapp.component.ts

export class MyApp {  

  constructor(platform: Platform, storage: Storage) {
     storage.get('your_item').then((val) => {
         console.log(val);
         this.platformReady();
     });

     platformReady() {
        // Call any initial plugins when ready
        this.platform.ready().then(() => {
           this.splashScreen.hide();
        });
     }
}

我还不清楚我应该把它写在什么地方@Vik@Vik我更新了我的代码,我想我们可以先获取数据,然后检查平台/插件