【问题标题】:Understanding how to send dojo.store.memory datatype to the server了解如何将 dojo.store.memory 数据类型发送到服务器
【发布时间】:2014-04-02 19:27:29
【问题描述】:

我不熟悉使用 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"}];

【问题讨论】:

    标签: javascript json dojo dgrid


    【解决方案1】:

    首先,您要对store.data 进行字符串化,而不是对store 本身进行字符串化。 dojo/store/Memory 在 store 的 data 属性中维护数据本身。

    其次,您可能不想在 XHR 调用中同时指定 formpostData - 在这种情况下您可能只需要 postData。当form 被指定为dojo.xhrPost 时,它会被转换成一个对象传递给postData

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

    【讨论】:

    • 再次感谢您能否指出我在单击向导表单上的下一步按钮时如何发布“数据”的示例。我知道我必须在向导窗格中将函数附加到 passFunction
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多