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