Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干:保存期间的特殊编码_Backbone.js - Fatal编程技术网

Backbone.js 主干:保存期间的特殊编码

Backbone.js 主干:保存期间的特殊编码,backbone.js,Backbone.js,注意:我知道这是错误的,但这是服务器团队的技术要求 我有一个扩展Backbone.Model的用户对象。它使用正常的、基本上良好的JSON从服务器接收数据 但是,在保存相同的信息时,需要使用url编码对电子邮件进行编码 在接收数据时,可以使用Backbone.Model.parse方法对其进行预处理,是否有一种在发送数据之前对其进行预处理的等效方法?(不重写sync方法)我重写了Backbone.sync以将数据的格式更改为form encoded。但是,使用此方法保存作为数组的属性会成为一个问

注意:我知道这是错误的,但这是服务器团队的技术要求

我有一个扩展Backbone.Model的用户对象。它使用正常的、基本上良好的JSON从服务器接收数据

但是,在保存相同的信息时,需要使用url编码对电子邮件进行编码


在接收数据时,可以使用Backbone.Model.parse方法对其进行预处理,是否有一种在发送数据之前对其进行预处理的等效方法?(不重写sync方法)

我重写了Backbone.sync以将数据的格式更改为form encoded。但是,使用此方法保存作为数组的属性会成为一个问题

可能有更好的方法覆盖sync,但我在backbone.js文件的第1180行添加了这段代码

//convert to form encoded
if (Backbone.sendFormEncoded) {
  if (type === 'PUT' || type === 'DELETE' || type === 'POST') {
    params.contentType = 'application/x-www-form-urlencoded';
    var kvps = [], regEx = /%20/g;      
    var obj = model.toJSON();
    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        if(obj[key]) {
          kvps.push(encodeURIComponent(key).replace(regEx, "+") + "=" + encodeURIComponent(obj[key].toString()).replace(regEx, "+"));
        } else {
          kvps.push(encodeURIComponent(key).replace(regEx, "+") + "=" + encodeURIComponent(obj[key]));
        }
      }
    }
    params.data = kvps ? kvps.join('&') : {};
  }
}
确保将Backbone.sendFormEncoded设置为true,以便运行此代码块