有没有办法听离子 2 中的模型变化,然后才将值设置回存储?

is there a way to listen to model changes in ionic 2 and only then set the values back to storage?

我有一个 ionic 2 class:

export class SettingsPage {

  public num = 2;
  public num1 = 3;

  constructor(public navCtrl: NavController, public navParams: NavParams,
              public storage: Storage) {
    storage.ready().then(() => {

      // Or to get a key/value pair
      storage.get('num').then((val) => {
        if (val != null) {
          this.num = val;
        } else {
          this.num = 2;
        }

      })
    });
  }

最佳做法是什么?有没有办法监听任何变量(numnum1)的任何变化,然后将值设置回存储以持久保存它?

这个问题与 Ionic 无关,而是与 TypeScript 相关。

您可以使用 getset 方法定义 属性,例如:

class YouClass {
    private _num: boolean = false;

    get num(): boolean {
        return this._num;
    }

    set num(value: boolean) {
        this._num = value;

        // Here you can save the value in the storage ...
        this.storage.set('num', value);
    }
}

set 中,您可以随心所欲。包括保存到存储。