2012-02-22 25 views
0

我開始了一個骨幹項目,我想我會從菜單系統開始。 我的菜單基於多級ul。所以基本上有一些嵌套在一些邊我想知道我將如何創建一個模型/集合。就此而言,我會如何做這個觀點。我見過有人用li的標籤類型創建視圖。但我不確定這是如何工作的。Backbone.js多級ul

回答

0

我個人使用集合視圖和項目視圖(防止重新描繪整個列表)

AutoFiler.Views.Messages = Backbone.View.extend({ 
initialize: function() { 
    _.bindAll(this, 'render', 'renderItem'); 
    this.collection.bind("reset", this.render); 
    this.collection.bind('add', this.renderItem); 
    this.collection.bind('remove', this.render); 
}, 
render: function() { 
    this.el.empty(); 
    this.collection.each(this.renderItem); 
    return this; 
}, 
renderItem: function (item) { 
    var viewC = new AutoFiler.Views.Message({ model: item }); 
    this.el.append(viewC.render().el); 
} 
}); 
AutoFiler.Views.Message = Backbone.View.extend({ 
    template: _.template($("#Message-template").html()), 
    tagName: "li", 
    initialize: function() { 
     _.bindAll(this, 'render'); 
    }, 
    render: function() { 
    $(this.el).html(this.template(this.model.toJSON())); 
    return this; 
    } 
}); 

<script id="Message-template" type="text/template"> 
    <div>{{ Subject }}</div> 
</script> 

<ul id="Messages"> 

</ul> 

給你

<ul id="Messages"> 
    <li><div>Subject A</div></li> 
    <li><div>Subject B</div></li> 
</ul> 

的粉絲,你能你可以窩通過創建清單集合(集合集合)

或者您可以使用類名稱和深度的樣式

http://jsfiddle.net/3HGuf/

我認爲它使代碼更容易一些閱讀

+0

謝謝你的例子。令人遺憾的是我的大腦剛剛被一個nhibernate映射問題蹂躪了出來,我的注意力有點麻煩。你能詳細說明收藏品嗎?我的模型會有這樣的集合屬性嗎?那麼我會不得不考慮通過意見來把它全部放在那裏?我不能做的CSS技巧,因爲我有一個插件,期待嵌套列表。謝謝你的幫助 – Raif 2012-02-22 20:10:32