刚开始使用 dojo/JsonRest,但在将更新发送回我的服务器时遇到了一些问题。我有 2 个问题一直困扰着我;
下面的代码生成一个网格,其中一列设置为可编辑。我的 json 数据中的主键是“jobName”属性(因此是 JsonRest 存储中的 idAttribute)。
第一个问题是关于 PUT 中的 URI;- 当我调用 dataStore.save() 时,服务器获取的是 PUT,但 URI 是 /myrestservice/Jobs/0.9877865987(它每次都会更改,但始终是浮点数) - 我看不到 dojo 从哪里获取浮点数从?这不是该行中我的 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();
});