Backbone.js - 抛出错误

时间:2013-01-16 10:02:20

标签: jquery backbone.js

我是使用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)

任何人帮我解决问题..?

1 个答案:

答案 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}
]);

这可能是也可能不是您的特定错误的原因,但至少这会造成一些严重的破坏。