0

如你看到的。如果我要更新一个 FIELD,我会收到一个 ALERT,它会向我显示 TESTVALUEform 我的模型。第一次它会是空的,我的商店会是空的。但第二次它应该显示我罗杰。但事实并非如此。我的商店从未同步过。

有人可以帮我吗?

这是我的代码:

接收更新数据的控制器(检查,它确实接收到事件)

Ext.define('Prototype.controller.MyController', {
extend: 'Ext.app.Controller',

config: {
    control: {
        "textfield": {
            change: 'onTextfieldChange'
        }
    }
},

onTextfieldChange: function(textfield, newValue, oldValue, eOpts) {
    Ext.getStore('localdb').load();
    var test = Ext.getStore('localdb').last().get('testValue');
    console.log(test);
    Ext.getStore('localdb').add({testvalue: 'ROGER'});
    Ext.getStore('localdb').sync();
}

});

模型 :

Ext.define('Prototype.model.LocalData', {
extend: 'Ext.data.Model',

config: {
    identifier: {
        type: 'uuid'
    },
    proxy: {
        type: 'localstorage',
        id: 'test1'
    },
    fields: [
        {
            name: 'testValue'
        }
    ]
}
});

店铺 :

Ext.define('Prototype.store.LocalStore', {
extend: 'Ext.data.Store',

requires: [
    'Prototype.model.LocalData'
],

config: {
    model: 'Prototype.model.LocalData',
    storeId: 'localdb',
    syncRemovedRecords: false,
    proxy: {
        type: 'localstorage',
        id: 'test1'
    }
}
});
4

2 回答 2

1

在执行同步之前,添加record.setDirty()到您的记录中。

于 2013-05-28T18:05:17.070 回答
0

控制器应该是这样的

Ext.getStore('localdb').load();
var test = Ext.getStore('localdb').last().get('testValue');
console.log(test);
var tested = Ext.create('Prototype.model.LocalData');
tested.set('testValue','roger');
Ext.getStore('localdb').add(tested);
Ext.getStore('localdb').sync();

我没有正确写入数据-_-'

于 2013-05-28T18:04:11.573 回答