gpt4 book ai didi

javascript - 主干 - 声明模型内部获取的默认参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:53 27 4
gpt4 key购买 nike

我有一些全局参数,我想在每次调用集合上的提取时发送这些参数...我的问题是我不想声明 data: { ... }每次我获取。

有没有一种方法可以在 Collection 本身内部提供默认参数,并可以添加更多或覆盖一些参数?

例如:

而不是每次都这样做:

this.articlesCollection.fetch({
dataType: 'jsonp',
data: {
deviceType: GlobalVars.deviceType,
memberId: GlobalVars.memberId,
authToken: GlobalVars.authToken,
targetObjectId: userId,
limit: 50,
excludeArticleBodies: true,
excludeViewedItems: false
},
success: function() {
_this.render();
}
});

我只想提供一两个参数和一个成功函数,如下所示:

this.articlesCollection.fetch({
data: {
targetObjectId: userId
},
success: function() {
_this.render();
}
});

... 并让 Collection 看起来像这样:

define([
'underscore',
'backbone',
'global',
'utilities',
'models/article/ArticleModel'
], function(_, Backbone, GlobalVars, Utils, ArticleModel){

var ArticlesCollection = Backbone.Collection.extend({

model: ArticleModel,

initialize : function(view) {
this.view = view;
},

dataType: 'jsonp',
data: {
deviceType: GlobalVars.deviceType,
memberId: GlobalVars.memberId,
authToken: GlobalVars.authToken,
limit: 50,
excludeArticleBodies: true,
excludeViewedItems: false
},

url : function() {
return GlobalVars.baseAPIUrl + '/API/GetArticles';
},

parse : function(data) {
return data.Articles;
}

});

return ArticlesCollection;

});

最佳答案

这是一个使用一种方法的有效 jsFiddle:http://jsfiddle.net/LEuGq/1/

基本上,您将 defaultParamsparams 的对象配置为集合的属性,用于在 fetch() 时动态计算正确的 URL 被调用。与更改 fetch() 的 API 以接受参数相比,这种方式可能更符合 backbone 的要求,而这不是设计用来做的。

var ParamCollection = Backbone.Collection.extend({

defaultParams: {deviceType: 'raceCar', limit: 42},
params: {},
url: function() {
return "/paramcollection?" + $.param(_.defaults(this.params, this.defaultParams));
}
});
var paramCollection = new ParamCollection();
paramCollection.params.excludeArticleBodies = true;
paramCollection.params.limit = 52;
$("#debug").append(paramCollection.url());

关于javascript - 主干 - 声明模型内部获取的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13942951/

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