2012-02-16 4 views
2

내가 거기에 일부 모델과 일반 Backbone.Collection에 봉착 말 :컬렉션 내에서 모델을 이동하려면 어떻게해야합니까?

var Library = Backbone.Collection.extend({ 
    model: Book 
}); 

lib = new Library(
    [Book1, Book2, Book3, Book4, Book5, Book6] 
]); 

가 어떻게 수집에서 모델을 이동할 수 있습니다 - 예를 들어, 5 일부터 2 일까지? 그래서 모델 필드별로 정렬하지 않고 수동으로 정렬 순서를 변경합니다.

참고 : Book1, ... 모델을 단순화했습니다. 그들은 물론 Backbone.Model입니다.

답변

5

모델 배열에 직접 액세스하여 순서를 수정할 수 있습니다. 느슨하게이 질문에 Move an array element from one array position to another에 따라,이 같은 작업을해야합니다 :

var c = new Backbone.Collection([{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}]); 
console.log(c.pluck("id")); 

var from_ix = 4, 
    to_ix = 1; 
c.models.splice(to_ix, 0, c.models.splice(from_ix, 1)[0]); 
console.log(c.pluck("id")); 

그리고 데모 http://jsfiddle.net/nikoshr/5DGJs/

+0

감사합니다 많이! 'collection.models' 배열을 완전히 잊어 버렸고'Collection' 내에 어떤 기능이 있어야한다고 생각했습니다. 나는 나무를위한 숲을 놓쳤다 ;-) – acme

관련 문제