ExtJS,SenchaTouch - LocalStorage更新仅适用于首页加载?

时间:2011-09-20 01:26:57

标签: javascript sencha-touch extjs

我已经建立了一个破损here的工作示例。第一次加载页面时,默认值将加载到表单中。更改数据并刷新时,将显示last-changed-value。但是,在第一个页面视图(再次刷新)之后,不再保留进一步的更改,因为看起来名为my-proxy-undefined的值正在设置而不是my-proxy-1更新。发生了什么事?

模型

Ext.regModel('MyModel', {
    fields: [
        {name: 'var1', type: 'integer'}
    ],
    proxy: {
        type: 'localstorage',
        id: 'my-proxy'
    }
});

商品

 var myStore = new Ext.data.Store({
                    model: 'MyModel',
                    listeners: {
                        load: function(store, records, successful) {
                            if (this.getCount() == 0) {
                                console.log("Count 0, loading defaults");
                                this.add(app.defaults.vars);
                                this.sync();
                            }

                            myForm.load(store.first());
                        }
                    },
                    autoLoad: true,
                    autoSave: true
                });

更改表单上的侦听器:

listeners:{
      change:function(el, newValue, oldValue) {
      var maxesRecord = myStore.first();
      maxesRecord.set(el.name, newValue);
      maxesRecord.save();
   }
}

1 个答案:

答案 0 :(得分:3)

Ext.regModel('Maxes', {
    fields: [
        {name: 'id', type: 'integer'},
        {name: 'var1', type: 'integer'}
    ],
    proxy: {
        type: 'localstorage',
        id: 'my-proxy'
    }
});

由于可用性错误,您需要将id设置为字段。