我是 Backbone/Require JS 的 n00b,我正在尝试运行基于集合的视图。我已经按照 MVC 模式将代码拆分为文件这是我的视图代码:
文件:views/petDirectory
define([
'jquery',
'backbone',
'models/pet',
'collections/pets',
'text!templates/pet/directory.html'
], function($, Backbone, PetModel, PetsCollection, petDirectoryTemplate){
var PetDirectoryView = Backbone.View.extend({
el: $("#main"),
template: _.template(petDirectoryTemplate),
collection: new PetsCollection(),
initialize: function() {
var view = this;
view.render();
},
render: function(){
var view = this;
var compiledTemplate = this.template({pets: view.collection});
view.$el.html( compiledTemplate );
return this;
},
});
return PetDirectoryView;
});
数据通过模型中的 API RESTful 加载,我在 router.js 中创建 PetDirectoryView 的实例。
但是我遇到了问题(可能是异步调用),因为我的模板没有显示这些项目,而我的 Chrome 控制台显示了如下内容:
r {length: 0, models: Array[0], _byId: Object, constructor: function, url: "http://localhost:3000/pets"…}
有任何想法吗?提前致谢!