2013-01-16 195 views
1

我與backbone.js非常基本的水平,我想添加幾個元素到身體,因爲這是使用這個函數,但我得到的錯誤爲「Uncaught ReferenceError:age is未定義「 - 我的代碼有什麼問題?Backbone.js - 拋出錯誤

錯誤我得到:

"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

你能提供一個工作jsfiddle嗎? –

回答

3

您錯誤地初始化您的收藏。構造函數期望初始模型作爲一個數組,而不是一個對象。因此,而不是:

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

這可能是也可能不是你的原因特定錯誤,但至少這會導致一些嚴重的破壞。