gpt4 book ai didi

javascript - 主干未捕获错误 :

转载 作者:行者123 更新时间:2023-11-30 10:10:55 26 4
gpt4 key购买 nike

在我的 chrome 控制台中,它说 Backbone 出现错误 - 未捕获错误:必须指定“url”属性或函数

我能够通过将我的 Backbone.js 脚本从版本 1.1.2 替换为 1.0.0 来解决问题。谁能解释为什么最新版本的 Backbone 给我一个错误,而旧版本却没有?

下面我尝试将集合 url 设置为 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');
}
});

如果我需要提供更多详细信息,请告诉我。

最佳答案

Backbone 不会将选项中的 urlurlRoot 添加到模型或集合中。来自changelog for 1.1.0 :

Backbone Views no longer automatically attach options passed to the constructor as this.options and Backbone Models no longer attach url and urlRoot options, but you can do it yourself if you prefer.

虽然它没有具体说明 Collections ,但如果您查看(1.0.0 和 1.1.2)之间的代码差异,您会发现以下行已从 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 函数中:

var DaysCollection = Backbone.Collection.extend({
initialize: function(models, options){
if (options.url) this.url = options.url;
}
});

关于javascript - 主干未捕获错误 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26750325/

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