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
Javascript 通过硬编码在值中重新写入Backbone.sync可以吗?_Javascript_Backbone.js - Fatal编程技术网

Javascript 通过硬编码在值中重新写入Backbone.sync可以吗?

Javascript 通过硬编码在值中重新写入Backbone.sync可以吗?,javascript,backbone.js,Javascript,Backbone.js,在这种情况下,我硬编码了创建或发布的方法,并将两个仿真选项都设置为false。应用此逻辑后,我得到了一个更短的方法: // hard code in the emulation and method Backbone.sync = function(method, model, options) { options || (options = {}); var params = {type: 'POST', dataType: 'json'}; // Ensur

在这种情况下,我硬编码了创建或发布的方法,并将两个仿真选项都设置为false。应用此逻辑后,我得到了一个更短的方法:

  // hard code in the emulation and method
  Backbone.sync = function(method, model, options) {
    options || (options = {});
    var params = {type: 'POST', dataType: 'json'};

    // Ensure that we have a URL.
    if (!options.url) {
      params.url = _.result(model, 'url') || urlError();
    }

    // Ensure that we have the appropriate request data.
    if (options.data == null) {
      params.contentType = 'application/json';
      params.data = JSON.stringify(options.attrs || model.toJSON(options));
    }
    params.processData = false;

    var xhr = options.xhr = Backbone.ajax(_.extend(params, options));
    model.trigger('request', model, xhr, options);
    return xhr;
  };

一般来说,硬编码的公认答案是以使方法可重用的方式进行。你基本上是在努力减少自己的工作量

在这种情况下,像POST和JSON这样的部分就可以了。你是否认为自己计划将方法从POST更改为GET?你打算写一个GET方法吗?然后将其设置为参数或可配置选项。(我非常怀疑你的情况,但我只是举个例子)

在获取数据和所有这些方面,您似乎可以进行测试。(因为你只是想让你的脚离开地面)。请记住为每个不同的数据案例添加method switch语句

编辑:方法开关正在第一个参数上创建开关语句,该语句定义对数据执行的操作类型。以下是一个例子:

Backbone.sync = function(method, model, options) {
    options || (options = {});
    var params = {type: 'POST', dataType: 'json'};
    switch (method) {
       case 'create':           
       //Let's go make data (POST)
       ...
       break;

       case 'update':
       //let's go update our data
       ...
       break;

       case 'delete':
       //Let's remove some data
       ...
       break;

       case 'read':
       //let's go gather our data (GET)
       ...
       break;
   }
   return xhr;
};

删除仿真值不会改变任何内容,因为它们已经以任何方式硬编码为
false
。我的服务器是为处理
JSON POST
而设置的,我现在没有时间编写服务器端代码,我需要一个快速解决方案来启动和运行您上次的体验是什么意思
只需记住为每个不同的数据案例添加方法切换语句
刚将其添加到POST中I have method hard coded to
create
,这与硬编码type to
POST
相同。不需要,对你来说,不需要。不过,沿着这条路走下去,你会的。为什么以后要为自己工作?我只是说这只是一个临时解决方案,直到我回到原来的方法。