정상적인 접근 방식은 TableView
이고 복수는 RowView
입니다. TableView는 Collection
과 연결되며 필요에 따라 RowView
을이 콜렉션을 반복하여 인스턴스화합니다.
또한 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