Backbone.js - 无法获取要收集的数据

时间:2015-01-31 13:43:57

标签: javascript backbone.js

我目前在获取集合数据时遇到问题。它在控制台中出现此错误:

  

未捕获的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'
});

如果有人能告诉我哪里出错了,我会非常感激。

非常感谢,

弗雷迪。

1 个答案:

答案 0 :(得分:0)

我打赌在airplanes.js之前加载/运行airplane.js。在这种情况下,代码......

App.Airplanes = Backbone.Collection.extend({
  model: App.Airplane,
  url: '/airplanes'
});

...将集合的model设置为undefined。尝试在集合上调用TypeError时,这会给您fetch()

在短期内,尝试将文件合并为一个文件和一个文件。确保在收集之前定义模型。从中期来看,看看RequireJS做真正的模块Javascript - 它将在未来为您节省大量的麻烦。