ExtJS 5使用本地数据加载现有商店

时间:2015-07-10 02:12:52

标签: extjs

我正在进行单元测试,并希望将虚拟数据添加到现有商店。在我正在测试的功能中,我正在调用一个商店:

var tripStore = Ext.getStore('Trips');

通常情况下,此商店将在之前的点上通过Ajax调用填充。但是,因为我正在测试我想使用虚拟数据而不依赖于后端。我意识到我可以重写函数来传递商店,但我不想为了测试而重写它。

最重要的是,如何将本地数据添加到已存在但没有数据的商店中?此外,后端不可用,所以当我尝试store.load或store.reload时,它会抛出一个404,说它无法找到url rest / trip。我不希望它尝试调用此URL,而是我想添加本地数据。

模型定义:

Ext.define('app.model.Trip', {
    fields:[
        {name: 'someField1', type: 'string'},
        {name: 'someField2', type: 'string'},
        {name: 'someField3', type: 'string'},
    ],
    proxy: {
        noCache: true,
        url: 'rest/trip',
        reader: {
            type: 'json',
            rootProperty: 'trips'
        }
    }
});

当我不想要它时调用url的(尝试的)测试脚本,但只希望它添加本地数据:

var tripsStore = Ext.StoreManager.lookup('Trips');
tripsStore.load({
    autoLoad: false,
    addRecords: true,
    proxy: {
        data: localData,
    },
    callback: function(records, operation, success) {
        if (success) {
            debugger
        } else {
            debugger
        }
    }   
})

1 个答案:

答案 0 :(得分:1)

使用ajax.SimManager。请参阅example(在右侧打开详细信息,单击任何数据选项卡)。