2012-09-26 225 views
3

我有需要的數據填充到DL標籤的看法,所以我想這個觀點產生的標記,這將是這樣的:骨幹視圖頂級元素問題

<dt><i class="icon-<%= icon %>"></i><%= title %></dt> 
<dd><%= content %> </dd> 

所以,我不真的有一個頂級的元素可以工作。它不能是一個dl標籤,因爲之後我需要將幾個項目放在該頂部元素中。

有沒有辦法呢?

回答

3

這裏沒有好的選擇。正如你所說,沒有有效的標籤爲項目視圖(因爲dl真的只在dtdd作爲孩子有效)和一個視圖恰好有一個$ el。

也許你應該重構你的代碼,以便你有一個代表整個DL的集合視圖呢?如果沒有一大堆的集合中的模型可能是確定以重新呈現DL/Collection視圖時,任何型號的改變:

var Definitions = Backbone.View.extend({ 
    tagName: 'dl', 

    initialize: function() { 
    this.collection.on('change', this.render, this); 
    } 

    render: function() { 
    this.$el.html(<output from template that loops over all definitions>); 
    } 
}); 

我想不出它周圍的任何方式如果你想要有效的HTML。如果你不太關心語義,你可以使用帶有單獨項目視圖的無序列表。

+0

如果您不介意一點點DOM糾纏並且綁定到適當的事件,則可以逐個重新繪製這些對。但是,我認爲你堅持使用'

'以外的東西,或者只用一個視圖來完成整個事情。 「
」和「
」的單獨子視圖將是另一種選擇,我想這只是您想要哪種醜陋的問題。 –

0

我真的不太明白你的問題,但這裏是一個答案。作爲概念,視圖元素應該是dl或者你的情況,你正在定義一個「列表中的項目」(比如BookCollectionView和BookItemView),所以你可以有2個視圖:1和其他項目list()。希望它能幫助你。