gpt4 book ai didi

javascript - 可以吗?通过硬编码值来重写 Backbone.sync?

转载 作者:行者123 更新时间:2023-11-28 01:06:31 24 4
gpt4 key购买 nike

在这种特殊情况下,我在创建或 POST 方法中进行了硬编码,并将两个模拟选项设置为 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 方法吗?然后将其设为参数或可配置选项。 (我非常怀疑你的情况,但我只是用它作为例子)

在获取数据等方面,您似乎可以进行测试。 (因为你只是想把脚离开地面)。只需记住为每个不同的数据情况添加方法 switch 语句...

编辑:方法 switch 在第一个参数上创建一个 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;
};

关于javascript - 可以吗?通过硬编码值来重写 Backbone.sync?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25014977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com