我是使用backbone.js的基本级别,我正在尝试向body添加几个元素,因为这是使用此函数,但我得到的错误为“未捕获的ReferenceError:年龄未定义” - 什么是我的代码错了吗?
我得到的错误:
"Uncaught ReferenceError: age is not defined"
HTML(模板):
<script id="person" type="text/template">
<strong><%= name %></strong><sup><%= age %></sup>
</script>
功能:
(function($){
var Model = Backbone.Model.extend({
defaults:{
name:'default name',
age:'default age'
}
});
var Col = Backbone.Collection.extend({
model:Model
});
var PersonView = Backbone.View.extend({
tagName:'li',
template:_.template($('#person').html()),
initialize:function(){
this.render();
},
render:function(){
$('body').append(this.$el.html(this.template(this.model.toJSON())));
}
});
var ncol = new Col({model:[{name:'abc',age:1},{name:'cdf',age:2},{name:'ghi',age:1}]});
var persons = new PersonView({model:ncol});
})(jQuery)
任何人帮我解决问题..?
答案 0 :(得分:3)
您错误地初始化了您的收藏集。 Collection
构造函数需要将初始模型作为数组,而不是对象。所以而不是:
new Col({model:[
{name:'abc',age:1},
{name:'cdf',age:2},
{name:'ghi',age:1}
]});
应该是:
new Col([
{name:'abc',age:1},
{name:'cdf',age:2},
{name:'ghi',age:1}
]);
这可能是也可能不是您的特定错误的原因,但至少这会造成一些严重的破坏。