JavaScript – 具有自定义提取URL的Backbone.js

前端之家收集整理的这篇文章主要介绍了JavaScript – 具有自定义提取URL的Backbone.js前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的骨干模型上设置一个变体提取方法,该方法获取给定用户的当前模型.这可以从/ api / mealplans / owner / {username} / current上的API获得.

我写了下面的模型.我注释了URL Root,因为原型抓取调用只是使用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,options);
  },validate: function (attributes) {
    // To be done
    return null;
  }
});

我已经看到这样做,在其他地方有些变化,例如backbone.js use different urls for model save and fetch – 在这种情况下,代码略有不同(我从此开始,将其分解,使我更容易阅读.)

当我把它传递给fetch时,这个选项对象的url参数很好,但是似乎忽略它!

解决方法

我正在采取相同的参数来获取以保存 – 事实并非如此.

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

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

var mealPlan = Ministry.Model.extend({

        name: 'Meal Plan',urlRoot: '/api/mealplans',defaults: {
        },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相关文章