我正在使用 Backbone.js 和 Require.js 做一个应用程序。我有一个“机会”主干集合,我需要修改 fetch 方法,因为来自服务器的数据来自一个“结果”对象。
我做了一些我在这个问题中发现的事情,在这一点上看起来一切都很好。
问题是我注意到 fetch 方法两次向服务器询问数据,而不是预期的一次。
我正在测试,现在我发现如果我删除此代码:return Backbone.Collection.prototype.fetch.call(this, options);
Backbone 仅向 url 询问数据一次,显然此代码导致了问题,但我不知道原因。
这是我的骨干系列
define([
'backbone',
'models/Opportunity'
], function(Backbone, Opportunity){
var Opportunities = Backbone.Collection.extend({
url: "/api/v1/opps/",
model: Opportunity,
// Need to have custom fetch because json data is coming inside a
// "results" array inside the JSON.
fetch : function(options) {
// store reference for this collection
var collection = this;
$.ajax({
type : 'GET',
url : this.url,
dataType : 'json',
success : function(data) {
// set collection main data
collection.reset(data.results);
}
});
// For some reason this is causing a double request
// to the server
return Backbone.Collection.prototype.fetch.call(this, options);
}
});
return Opportunities;
});
有人知道原因是因为发生了这个错误吗?