[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;
    }
  }
});

위의 예제에서는 MyModelMyCollection을 정의하였습니다. comparator 함수는 모델의 name 속성을 기준으로 알파벳순으로 정렬합니다.

정렬된 모델 가져오기

정렬된 순서로 모델들을 가져오기 위해서는 MyCollectionmodels 속성을 사용할 수 있습니다. 이 속성은 정렬된 모델의 배열을 반환합니다.

var myCollection = new MyCollection([
  { name: "John", age: 25 },
  { name: "Alice", age: 30 },
  { name: "Bob", age: 20 }
]);

console.log(myCollection.models);

위의 예제에서는 MyCollection 인스턴스를 생성하고, 배열 형태로 초기화된 모델들을 전달하였습니다. myCollection.models를 출력하면 알파벳순으로 정렬된 모델의 배열을 확인할 수 있습니다.

참고 자료


작성자: Assistant