我对 Backbone 真的很陌生,我到处寻找并试图解决这个问题。从根本上讲,我了解模型、视图、集合和模板如何协同工作,但由于某种原因,我无法让我的集合在模板中呈现。使用 Firebug,我得到一个“this.model is undefined”
这是我的代码:
(function($) {
window.Category = Backbone.Model.extend({});
window.Categories = Backbone.Collection.extend({
url: "src/api/index.php/categories?accounts_id=1",
model: Category
});
window.categories = new Categories();
categories.fetch();
window.CategoriesView = Backbone.View.extend({
initialize:function () {
_.bindAll(this,"render");
this.model.bind("reset", this.render);
},
template:_.template($('#tpl-category').html()),
render:function (eventName) {
$(this.el).html(this.template(this.model.toJSON()));
return this;
}
});
var testTargetvar = new CategoriesView({ el: $("#collection") });
})(jQuery) ;
这是我的 REST 服务生成的数据:
[
{
"name": "Web Design",
"id": 0
},
{
"name": "Web Development",
"id": 0
},
{
"name": "Waste Management Solutions",
"id": 0
}
]
我正在使用的“获取”确实显示了 Firebug 中获取的数据。
最后,这是我的模板:
<div id="collection"></div>
<!-- Templates -->
<script type="text/template" id="tpl-category">
<span><%=name%></span>
</script>
我已验证所有必要的脚本、jquery、主干、下划线等都已正确加载到页面上。