了解如何将dojo.store.memory数据类型发送到服务器

时间:2014-04-02 19:27:29

标签: javascript json dojo dgrid

我是使用 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"}];

1 个答案:

答案 0 :(得分:2)

首先,您希望将store.data字符串化,而不是store本身。 dojo/store/Memory将数据本身维护在商店的data属性中。

其次,您可能不希望在XHR调用中同时指定formpostData - 在这种情况下您可能只需要postData。将form指定给dojo.xhrPost时,无论如何都会将其转换为要传递给postData的对象。

第三,如果您使用的是Dojo 1.8或更新版本,则应考虑使用新的dojo/request API