2013-06-29 2 views
0

그래서 매우 기본적인 백본 컬렉션과 모델이 있습니다. 현재 사용자 지정 서식 파일을 통해 컬렉션을 렌더링하므로보기가 없습니다. 내가 뭘하고 싶은 건 (열 머리글을 클릭) 이벤트를 통해 컬렉션을 정렬합니다. 이 이벤트는 새 비교자를 설정 한 다음 컬렉션에서 .sort() 메서드를 시작합니다. 그러나 .sort() 다음에 콜렉션 데이터를 덤프 할 때 콜렉션은 동일한 순서로 있습니다. 나는 백본과 컬렉션에 익숙하지 않아 아마도 뭔가를 놓치고 있습니다. 여기 내 코드는 다음과 같습니다백본 컬렉션의 동적 정렬이 작동하지 않습니다.

var TicketCollection = Backbone.Collection.extend({ 
    model : TicketModel, 

    initialize : function() { 

    }, 

    fetch : function(options) { 
     options = options ? options : {}; 

     var self = this; 

     $.ajax({ 
      url : "/getTickets", 
      data : {}, 
      method : "POST", 
      cache : false, 
      dataType : "json", 
      success : function(Json) { 
       self.reset(Json); 
      }, 
      complete : options.complete 
     }); 
    }, 

    render : function() { 
     var self = this; 

     Base.renderTemplate({el : $("#ticketListContainer"), Template : "ticketList", data : {tickets : this.toJSON()}}); 

     $("#ticketList").find("#tdHeadCompany").click(function() { 
      self.comparator = function(ticket) { 
       ticket.get("company"); 
      }; 
      self.sort(); 
      console.log(JSON.stringify(self.toJSON())); 
     }); 

    }, 

    comparator : function(ticket) { 
     return ticket.get("number"); 
    } 
}); 

CONSOLE.LOG 컬렉션 원래 순서대로 여전히 보여주고, 회사의 헤더를 클릭하면 내가 원하는만큼 "회사"에 의해 주문하지. 어떤 충고? 감사!

+1

새 기능에 'return'문이 하나만 빠졌습니다. – Andrew

답변

0

그리고 내 비교 기능에 return이 누락되었습니다. 그 점을 지적 해 주셔서 고마워요, 앤드류!