【发布时间】:2014-07-31 15:36:51
【问题描述】:
刚开始使用 dojo/JsonRest,但在将更新发送回我的服务器时遇到了一些问题。我有 2 个问题一直困扰着我;
下面的代码生成一个网格,其中一列设置为可编辑。 我的 json 数据中的主键是“jobName”属性(因此是 JsonRest 存储中的 idAttribute)。
第一个问题是关于 PUT 中的 URI; - 当我调用 dataStore.save() 时,服务器获取的是 PUT,但 URI 是 /myrestservice/Jobs/0.9877865987 (它每次都会更改,但始终是浮点数) - 我看不出道场是从哪里得到浮点数的?这不是该行中我的 idAttribute 值。如何让 PUT 尊重 JsonRest 商店中的 idAttribute? - 我确实尝试将 MemoryStore 中的 idProperty 设置为“jobName”,但这将 PUT 更改为 POST 并删除了浮动,但我仍然没有在 URI 中获得我的 REST 服务器需要的 jobName。
关于PUT内容的第二个问题; - PUT 包含整行。我真的很喜欢 idAttribute 和改变的数据 - 这可能吗?
我浏览过示例和文档,但处理 JsonRest 的 PUT/POST 部分的示例并不多。
谢谢
var userMemoryStore = new dojo.store.Memory( );
var userJsonRestStore = new dojo.store.JsonRest({target:"/myrestservice/Jobs/", idAttribute:"jobName"});
var jsonStore = new dojo.store.Cache(userJsonRestStore, userMemoryStore);
var dataStore = new dojo.data.ObjectStore( {objectStore: jsonStore } );
/*create a new grid*/
var grid = new dojox.grid.DataGrid({
id: 'grid'
,store: dataStore
,structure: layout
,rowSelector: '20px'}
,"gridDiv");
grid.startup();
dojo.query("#save").onclick(function() {
dataStore.save();
});
【问题讨论】:
标签: dojo jsonreststore