我是使用 Dojo框架的新手。我已经实现了 dgrid 来收集数据,这非常适合在数据输入期间从客户端存储,查询,更新和删除数据。但是,一旦 dojo.store.memory 数据类型有数据,我想使用 ajax 请求将 dojo 对象发布到服务器。
我想以json格式将数据发布到服务器但是我无法将对象( myStore )转换为json字符串。以下是我迄今为止的尝试:
JavaScript功能
function SendForm(){
var jsonIdObj = JSON.stringify(myStore);
dojo.xhrPost({
url:'processData',
form:dojo.byId('myForm'),
postData:jsonIdObj,
success: function(){
console.log('success');
},
error: function(){
console.log('error occured');
}
});
}
数据存储
var myStore = new dojo.store.Observable(new Memory({data: data, idProperty:"typeId"}));
数据
var data = [{ id:"1",age:"33",idtype:"1" ,first_name: "Edward", surname: "Davis" },
{ id:"2",age:"41",idtype:"2" ,first_name: "Lewis", surname: "Holl"},
{ id:"3",age:"59",idtype:"3" ,first_name: "Fred", surname: "James"}];
答案 0 :(得分:2)
首先,您希望将store.data
字符串化,而不是store
本身。 dojo/store/Memory
将数据本身维护在商店的data
属性中。
其次,您可能不希望在XHR调用中同时指定form
和postData
- 在这种情况下您可能只需要postData
。将form
指定给dojo.xhrPost
时,无论如何都会将其转换为要传递给postData
的对象。
第三,如果您使用的是Dojo 1.8或更新版本,则应考虑使用新的dojo/request
API。