Javascript 通过硬编码在值中重新写入Backbone.sync可以吗?
在这种情况下,我硬编码了创建或发布的方法,并将两个仿真选项都设置为false。应用此逻辑后,我得到了一个更短的方法: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
// 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 tocreate
,这与硬编码type toPOST
相同。不需要,对你来说,不需要。不过,沿着这条路走下去,你会的。为什么以后要为自己工作?我只是说这只是一个临时解决方案,直到我回到原来的方法。