正常的方法是使用TableView
和多個RowView
s。 TableView將與Collection
相關聯,並且它將根據需要實例化多個RowView
s迭代該集合。
此外,TableView將監聽Collection中的更改,並在Collection更改時創建和刪除RowView實例。
RowView將收聽集合中每個Model
的更改。並且監聽到與每個模型關聯的活動DOM元素上的用戶交互。
我沒有看到任何問題。我認爲這是最直觀,可維護,最優雅的結構。
如果你真的認爲是具有TableView中一次它不是一個問題,監聽事件中的所有行更好,試試這個:
var TableView = Backbone.View.extend({
events: {
"click tr a.remove", "remove"
},
remove: function(event){
console.log("row-id", $(event.target).attr("data-row-id"));
}
});
只是要確保每個row
可以通過TableView中任何標識這個例子中的特殊屬性如data-row-id
..但是他們你必須去集合,搜索具體的模型和行爲,當直接在RowView中使用這個事件時,你可以直接訪問模型,並且一切工作都更自然。
其實我不認爲你會取得更好的表現,我認爲發作中的jQuery將創建相同數量的事件監聽器。
爲什麼要查看每一行? – Andbdrew 2012-07-28 16:11:42