0

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

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

但是,这似乎并没有更新底层 Store 中的实例。所以当我回到列表时,我点击的服务器有陈旧的数据(仍然说“空闲”)。

有没有办法可以获取更新的服务器实例并仅更新商店中的该记录?我不想为了更新一条记录的 UI 而重新加载我的整个商店。

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

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

我在这里错过了什么吗?还是我真的必须重新加载整个商店才能获得一条记录的更新状态?

4

1 回答 1

1

不,您不需要重新加载所有商店并手动设置好更新记录数据。

正确的:

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

record.set(form.getData());

record.save();

于 2012-10-04T20:11:40.000 回答