2013-08-29 167 views
0

我有以下的骨幹查看:渲染骨幹視圖動態

var MyView = Backbone.View.extend({ 
    id : 'myview'+atrs.i, //i is the property of atrs passed as parameter to view 

    initialize: function(atrs) { 
    $('#'+atrs.DOMid).append(this.$el); 
    } 
}); 

我正在考慮一個HTML元素的ID DOMid已經在身體存在初始化視圖前。然後我初始化視圖:

new MyView({DOMid:'mydiv',i:2}); 

但我得到的錯誤:cannot read property i of undefined

我也試過:

var MyView = Backbone.View.extend({ 

    initialize: function(atrs) { 
    this.id = 'myview'+atrs.i; 
    $('#'+atrs.DOMid).append(this.$el); 
    } 
}); 

在產生這種情況的看法,但在它沒有任何id屬性。

我如何處理我的目標。

+0

你試過'.append(this.render()。$ el)'而不是'.append(this。$ el)'? – TMichel

+0

@TMichel結果無變化 – codeofnode

回答

0

如果要動態地設置MyView的的id,你將不得不使用的功能:

id: function() { return 'myview'+atrs.i; }, 

但是一個更簡潔的方法是使用上的實例化的MyView的的指定ARGS:

new MyView({el:'#mydiv',id:'myview2'});