如何更新商店中的单个实例?

时间:2012-10-03 20:55:26

标签: html model sencha-touch-2 store

我有一个用来支持List的商店。当我点击列表项时,我会显示“详细信息”面板。详细信息面板上的其中一个按钮启动POST请求以启动服务器端操作。这会将服务器端的状态从“空闲”更改为“正在进行中”。要更新详细信息面板上的UI,我然后通过调用Model类上的load()来加载此实例的最新数据,例如。

MyApp.model.Server.load(serverId, 
    success: function(record, operation) {
        // code that updates the current view
    }
});

但是,这似乎不会更新底层Store中的实例。因此,当我回到列表时,我所点击的服务器的陈旧数据(仍称为“空闲”)。

有没有办法可以获取更新的Server实例并在Store中更新该记录?我不想重新加载我的整个商店只是为了更新一条记录的用户界面。

我尝试更新商店中的实例,但无济于事:

Ext.getStore('Server').getById(serverId).data = record.data;

我在这里遗漏了什么吗?或者我是否真的需要重新加载整个商店才能获得一条记录的更新状态?

1 个答案:

答案 0 :(得分:1)

不,你不需要重新加载所有商店,并且可以手动更新记录数据。

正确:

var record = Ext.getStore('Server').first();

record.set(form.getData());

record.save();