gpt4 book ai didi

javascript - 具有自定义获取 URL 的 Backbone.js

转载 作者:可可西里 更新时间:2023-11-01 02:35:49 26 4
gpt4 key购买 nike

我正在尝试在我的主干模型上设置一个变体获取方法,该方法将为给定用户获取当前模型。这可从 /api/mealplans/owner/{username}/current 上的 API 获得。

我写了下面的模型。我注释掉了 URL Root,因为原型(prototype) fetch 调用只是使用 urlRoot,我想看看它是否覆盖了我以某种方式分部分传递的 url 参数。

var mealPlan = Backbone.Model.extend({
name: 'Meal Plan',
//urlRoot: '/api/mealplans',
defaults: {},
fetchCurrent: function (username, attributes, options) {
attributes = attributes || {};
options = options || {};
if (options.url === undefined) {
options.url = "/api/mealplans/owner/" + username + "/current";
}
return Backbone.Model.prototype.fetch.call(this, attributes, options);
},
validate: function (attributes) {
// To be done
return null;
}
});

我在其他地方的一些变体中看到过这样做,例如 backbone.js use different urls for model save and fetch - 在那种情况下,代码略有不同(我从那里开始并将其分解以使我更容易阅读。)

当我将它传递给 fetch 时,options 对象中有 url 参数,但它似乎忽略了它!

最佳答案

我假设要获取的参数与保存的参数相同 - 但事实并非如此。

fetch 的方法签名只接受“选项”而不是“属性”,因此找不到 url 参数。

模型代码应该看起来更像这样..

   var mealPlan = Ministry.Model.extend({

name: 'Meal Plan',
urlRoot: '/api/mealplans',

defaults: {
},

fetchCurrent: function (username, options) {
options = options || {};
if (options.url === undefined) {
options.url = this.urlRoot + "/owner/" + username + "/current";
}

return Backbone.Model.prototype.fetch.call(this, options);
},

validate: function (attributes) {
// To be done
return null;
}
});

关于javascript - 具有自定义获取 URL 的 Backbone.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383205/

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