2013-10-05 6 views
0

Marionette.js를 사용하여 프로젝트를 진행하고 있지만로드 블록에 왔습니다. 내 모델은 배달 담당자가 추진하는 여행의 다리를 나타냅니다. 각 모델의 범위는 입니다. pick_location, pickup_time, drop_location, drop_time모델 간 백본 계산

배송 기간 동안뿐만 아니라 배송 기간까지 계산할 수 있어야합니다. 그래서 만약

  • D1 - pick_loc-1 pick_time-1 drop_loc-1 drop_time-1, ...
  • D2 - pick_loc-2 pick_time-2 drop_loc-2 drop_time- 2, ... 등

제가

  • D1의 표시 생성 할 - 전달 간의
  • TRAVEL_TIME D 사이 travel_distance을 (픽 드롭) TRAVEL_TIME (드롭 픽업) travel_distance을 eliveries
  • D2 TRAVEL_TIME (픽업 드롭하는) travel_distance 끝나면

다음 열의 합계 (픽업 드롭)이다. 내가 생각하고 말

합 쉽게 모델 내의 위치 사이의 시간과 거리의 계산은 똑바로 앞으로 있어야 할 collection.reduce 정의

으로 수행 할 수 있습니다.

내가 겪고있는 문제는 모델 간의 계산과 뷰에 계산 된 행을 표시하는 중간 값을 계산하는 것입니다. 당신은 기본적으로 각 행에 동일 정보를 표시하는 것처럼 그것은 나에게 보이는

답변

0

:

상황은 배달 또는 운송 중 하나가
| Context | Travel Time | Travel Distance | 

. 대중 교통 모델을 나타내는 새로운 개체를 컬렉션에 삽입하여 컬렉션을 만들 때 약간의 속임수를 부칠 수 있습니다.

var Route = Backbone.Model.extend({ 
    defaults: { 
     context: '', 
     beginTime: '', 
     endTime: '', 
     beginLocation: '', 
     endLocation: '' 
    } 
}); 

var Trip = Backbone.Collection.extend({ 
    model: Route, 
    parse: function(data) { 
     var out = [], 
      last; 
     _.each(data, function(route) { 
      if (last) { 
       out.push({ 
        context: 'transit', 
        beginTime: last.endTime, 
        endTime: route.beginTime, 
        beginLocation: last.endLocation, 
        endLocation: route.beginLocation 
       }); 
      } 
      out.push(_.extend({ context: 'delivery' }, route)); 
      last = route; 
     }); 
     return out; 
    } 
}); 

여기에 샘플 피들이가 있습니다. http://jsfiddle.net/ccamarat/jMt8B/

+0

이것은 완벽합니다. 아주 좋은 접근 방식과 바이올린 정말 도움이됩니다. – t3living