在我的chrome控制台中,它说Backbone有错误 - 未捕获错误:必须指定“url”属性或函数
我能够通过将我的Backbone.js脚本从1.1.2版替换为1.0.0来解决问题。任何人都可以解释为什么最新版本的Backbone给我一个错误,因为旧版本没有?
我的语法下面有什么问题,我试图将收集网址设置为api地址吗?
var daysCollection = new DaysCollection([], {
url: 'http://api.wunderground.com/api/94c558eeb4e503dc/forecast/q/CA/San_Francisco.json'
});
daysCollection.fetch({
success: function (collection, response, options) {
console.log(collection, response);
},
error: function (collection, response, options) {
console.log('error');
}
});
如果我需要提供更多详细信息,请与我们联系。
答案 0 :(得分:4)
Backbone不会将选项中的url
或urlRoot
添加到模型或集合中。来自changelog for 1.1.0:
Backbone Views不再自动附加传递给构造函数的选项,因为this.options和Backbone Models不再附加url和urlRoot选项,但如果您愿意,可以自己执行。
虽然它没有具体说Collection
s,但是如果你看一下(1.0.0和1.1.2)之间的代码差异,你会发现以下行已从{{{ 1}}构造函数:
Backbone.Collection
有几个解决方案,第一个是后来设置if (options.url) this.url = options.url;
:
url
或者,您可以将该选项行添加到集合的 var daysCollection = new DaysCollection([], {});
daysCollection.url = 'http://api.wunderground.com/api/94c558eeb4e503dc/forecast/q/CA/San_Francisco.json';
函数中:
initialize