從存儲中獲取數據是異步的,這意味着我們的應用程序將在數據加載時繼續運行。允諾讓我們來執行一些動作,當數據加載完成後,無需暫停整個應用程序
所以這樣一個例子應該是:
//set a value in storage
this.storage.set("age", 25);
//get the value from storage
this.storage.get("age").then((value) => {
alert('Storage value: '+ value);
})
更多信息可以在找到SqlStorage API page
更新離子2 RC
由於離子2 RC的發佈一些變化了地點:
存儲已從離子角度移除並置於單獨的模塊@ ionic/storage中。已經更新Starter以添加此內容,如果您使用的是存儲系統,請確保將其添加到您的package.json中。在這裏看到更多細節。
下面的例子演示瞭如何離子2儲存:
首先我們編輯位於src/app/app.module.ts
的NgModule
。最重要的部分是添加Storage
作爲供應商:
import { Storage } from '@ionic/storage';
@NgModule({
declarations: [
...
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
...
],
providers: [ Storage ] // Make sure you do that!
})
export class AppModule {}
現在我們可以注入Storage
到我們的組件:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Storage } from '@ionic/storage';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController, public storage: Storage) {
}
}
注入寄存到組件後,我們可以使用storage.set
和storage.get
方法:
this.storage.set('name', 'John').then(() => {
console.log('Name has been set');
});
this.storage.get('name').then((name) => {
console.log('Name: ' + name);
});
你試過了'this.storage.set('veeuID',11)); alert('Storage was set to:'+ JSON.stringify(this.storage.get('veeuID'))); ' – Akis
是的。看起來你不能只是調用.get你必須使用一個承諾。 –
是的,這裏有一個很好的例子http://www.joshmorony.com/build-a-todo-app-from-scratch-with-ionic-2-video-tutorial/ – Akis