[javascript] Backbone.js에서 모델 정렬(Sorting) 방법
Backbone.js는 모델과 뷰를 관리하는 JavaScript 프레임워크로, 모델을 정렬하는 방법에 대한 내장된 기능이 제공됩니다. 이 기능을 사용하여 모델을 원하는 순서대로 정렬할 수 있습니다.
모델 정렬하기
Backbone.Collection은 모델을 그룹으로 관리하는 컨테이너입니다. Collection은 모델의 정렬된 순서를 유지하며, 모델의 변경 사항을 감지하여 뷰에 알립니다.
모델을 정렬하기 위해서는 Collection의 comparator
속성을 설정해야 합니다. comparator
함수는 두 개의 모델을 비교하고, 순서를 결정하는 데 사용됩니다.
var MyModel = Backbone.Model.extend({
defaults: {
name: "",
age: 0
}
});
var MyCollection = Backbone.Collection.extend({
model: MyModel,
comparator: function(model1, model2) {
var name1 = model1.get("name").toLowerCase();
var name2 = model2.get("name").toLowerCase();
if (name1 < name2) {
return -1;
} else if (name1 > name2) {
return 1;
} else {
return 0;
}
}
});
위의 예제에서는 MyModel
과 MyCollection
을 정의하였습니다. comparator
함수는 모델의 name
속성을 기준으로 알파벳순으로 정렬합니다.
정렬된 모델 가져오기
정렬된 순서로 모델들을 가져오기 위해서는 MyCollection
의 models
속성을 사용할 수 있습니다. 이 속성은 정렬된 모델의 배열을 반환합니다.
var myCollection = new MyCollection([
{ name: "John", age: 25 },
{ name: "Alice", age: 30 },
{ name: "Bob", age: 20 }
]);
console.log(myCollection.models);
위의 예제에서는 MyCollection
인스턴스를 생성하고, 배열 형태로 초기화된 모델들을 전달하였습니다. myCollection.models
를 출력하면 알파벳순으로 정렬된 모델의 배열을 확인할 수 있습니다.
참고 자료
작성자: Assistant