2013-02-23 2 views
1

나는 여러 매개 변수로 차량 컬렉션을 필터링해야하는 시나리오가 있습니다. 사용자가 연료, 좌석, 색상을 선택하도록 선택할 수있는 일련의 라디오, 선택 상자 등. 예 조합이 될 수있다 : Backbonejs - 여러 매개 변수로 컬렉션을 필터링하는 방법?

  • 석 = 4 & 연료 = 휘발유
  • 연료 = 디젤
  • 연료 = 휘발유 & 색상 = 블랙 & 좌석 = 2
  • 빨간색

    • 색상 =

    컬렉션을 필터링하는 데는 간단합니다. 하나의 매개 변수가 필요하지만 여러 항목에 대한 도움말이 필요합니다.

    Vehicles = Backbone.Collection.extend({ 
         model: Vehicle, 
         withFuelType: function(fuel) { 
          return this.models.filter(function(vehicle) { return vehicle.get('fuel') === fuel; }); 
         }, 
         withSeats: function (seats) { 
          return this.models.filter(function (vehicle) { return vehicle.get('seats') === seats; }); 
         }, 
         withColor: function(color) { 
          return this.models.filter(function (vehicle) { return vehicle.get('color') === color; }); 
         } 
        }) 
    

    모든 포인터는 크게 감사 :

    여기 내 차량 모음입니다.

    답변

    3

    당신은 간단한 평등 검색에 where를 사용할 수 있습니다

    collection.where(attributes)

    반환에 맞게 전달 속성 모음에있는 모든 모델의 배열. filter의 간단한 경우에 유용합니다.

    그래서 당신은 이러한 기능이 필요하지 않습니다, 대신이 작업을 수행 할 수 있습니다

    c.where({ fuel: 'petrol', color: 'black' }); 
    c.where({ seats: 2 }); 
    

    당신은 무엇을 얻기 위해 객체로 검색 쿼리 문자열을 켜고 where에 그 손 수 있어야합니다 당신 필요한 것.

    관련 문제