Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 函数ionViewDidLoad()中的ionic 3读取存储值本机存储_Angularjs_Typescript_Cordova Plugins_Ionic3_Cordova Nativestorage - Fatal编程技术网

Angularjs 函数ionViewDidLoad()中的ionic 3读取存储值本机存储

Angularjs 函数ionViewDidLoad()中的ionic 3读取存储值本机存储,angularjs,typescript,cordova-plugins,ionic3,cordova-nativestorage,Angularjs,Typescript,Cordova Plugins,Ionic3,Cordova Nativestorage,我遇到一个问题,我想在函数->ionViewDidLoad()中读取本机存储Cordova插件中保存的值 功能说明: ionViewDidLoad()=”在页面加载后运行。仅此事件 每个创建的页面发生一次。如果页面离开但被缓存, 然后,此事件将不会在后续查看时再次触发 ionViewDidLoad事件是放置安装程序代码的好地方 页面。“ 我尝试执行的操作,并在打开应用程序时显示消息。但是,如果用户不希望每次应用程序启动时都打开它,我希望在函数ionViewDidLoad()中设置一个条件,以便它

我遇到一个问题,我想在函数->ionViewDidLoad()中读取本机存储Cordova插件中保存的值

功能说明:

ionViewDidLoad()=”在页面加载后运行。仅此事件 每个创建的页面发生一次。如果页面离开但被缓存, 然后,此事件将不会在后续查看时再次触发 ionViewDidLoad事件是放置安装程序代码的好地方 页面。“

我尝试执行的操作,并在打开应用程序时显示消息。但是,如果用户不希望每次应用程序启动时都打开它,我希望在函数ionViewDidLoad()中设置一个条件,以便它根据用户的意愿打开

Home.ts页面

    import { Component } from '@angular/core';
    import { NavController, AlertController } from 'ionic-angular';

    import { ParamProviders } from '../../providers/paramProviders';
    import { NativeStorage } from '@ionic-native/native-storage';

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

      boolBienvenue: boolean;

      constructor(public navCtrl: NavController, private alertCtrl: AlertController, private nativeStorage: NativeStorage, private paramService: ParamProviders) {
      }

      ionViewDidLoad() {
         this.boolBienvenue1()
         console.log(this.boolBienvenue);
         if ( this.boolBienvenue == true ) {
            this.demarrage();
        }
      }

     public boolBienvenue1() {
        this.nativeStorage.getItem('storage_pref')
          .then(
            data => this.boolBienvenue = data.bienvenue,
            error => console.error(error)
        )

  }

     public demarrage() {
        let alert = this.alertCtrl.create({
          title: 'Bienvenue dans HackChat !!',
          message: 'Avant de discuter avec vos amies ou vos proches, veuillez configurer l\'application en y indiquant l\'adresse de votre serveur ainsi que votre login et mot de pass dans l\'onglet Paramétres. Une fois que vous serrez connecté, vous pourrez discuter.<br />Allez y c\'est à vous !!<br /><br />Voulez vous que cette bulle d\'information s\'affiche lors de l\'ouverture de HackChat ?',
          buttons: [
            {
              text: 'Non',
              handler: () => {
                console.log('Disagree clicked');
              }
            },
            {
              text: 'Oui',
              handler: () => {
                console.log('Agree clicked');
              }
            }
          ]
        });
        alert.present();
      }
}

你能帮我吗
感谢您

访问存储是一个异步作业,因此您的以下代码很可能无法工作,因为在您尝试询问是否设置了布尔值后,异步作业的结果被解析

ionViewDidLoad() {
     this.boolBienvenue1() // Here you don't wait for async job
     console.log(this.boolBienvenue); // So this value might or might not be set
     if ( this.boolBienvenue == true ) {
        this.demarrage();
    }
  }

 public boolBienvenue1() {
    this.nativeStorage.getItem('storage_pref')
      .then(
        data => this.boolBienvenue = data.bienvenue,
        error => console.error(error)
    )
 }
例如,您可以修改代码,如下所示:

 ionViewDidLoad() {
     this.nativeStorage.getItem('storage_pref')
      .then(
        (data) => {
             if ( data !== null && data.bienvenue ) {
                this.demarrage();
             }
        }
        error => console.error(error)
    )
 }
注:与您的问题无关,但如果可以的话,要测试布尔值在不需要添加
==true
的条件下是否为真,布尔值本身就足够了。我的意思是:

 if (something == true)
应该写

 if (something)

非常感谢您的帮助和建议。
 if (something)