我目前在获取集合数据时遇到问题。它在控制台中出现此错误:
未捕获的TypeError:undefined不是函数
router.js:
var App = App || {};
App.Router = Backbone.Router.extend({
routes: {
'': 'homePage'
},
homePage: function() {
var airplanesCollection = new App.Airplanes();
airplanesCollection.fetch().then(function(){
var airplanesView = new App.AirplanesView({ collection: airplanesCollection});
$(".container").html(airplanesView.render().el);
});
}
});
App.router = new App.Router();
收集文件airplanes.js:
var App = App || {};
App.Airplanes = Backbone.Collection.extend({
model: App.Airplane,
url: '/airplanes'
});
模型文件airplane.js:
var App = App || {}
App.Airplane = Backbone.Model.extend({
urlRoot: '/airplanes'
});
如果有人能告诉我哪里出错了,我会非常感激。
非常感谢,
弗雷迪。
答案 0 :(得分:0)
我打赌在airplanes.js
之前加载/运行airplane.js
。在这种情况下,代码......
App.Airplanes = Backbone.Collection.extend({
model: App.Airplane,
url: '/airplanes'
});
...将集合的model
设置为undefined
。尝试在集合上调用TypeError
时,这会给您fetch()
。
在短期内,尝试将文件合并为一个文件和一个文件。确保在收集之前定义模型。从中期来看,看看RequireJS做真正的模块Javascript - 它将在未来为您节省大量的麻烦。