2012-02-13 4 views
1

ItemCollection에 저장되는 Item이라는 backbone.js 모델이 있다고 가정합니다. Item의 속성이 date 인 경우 ItemCollection을 파티션하는 가장 좋은 방법은 같은 날짜의 모든 항목이 같은 파티션에 저장되도록하는 것입니다.(그룹화 된 렌더링의 경우) backbone.js 컬렉션의 항목을 구분합니다.

궁극적으로, 파티션 된 데이터 구조는 날짜별로 그룹화 된 항목을 렌더링하기로되어있는 (backbone.js)보기로 가정됩니다.

어떤 점이 최선의 방법일까요?

은 지금까지 나는 인덱스 뷰가 렌더링 될 때 동적으로 파티션을 추출

  1. 을 고려,하지만 그건 아마 수집/모델 업데이트를 렌더링하는 백본의 이벤트 기반 메커니즘의 우아함을 깰 것이다.

  2. Header 모델의 인스턴스로 각 그룹화 헤더를 나타내고 해당 파티션이있는 모음을 첨부합니다. 나는 어쨌든 Header 인스턴스에 연결된 파티션을 메인 ItemCollection과 동기화하여 유지해야 할 필요가 있지만 백본의 이벤트 메커니즘을 통해 관리 할 수 ​​있습니다.

이러한 접근 방식 중 어느 것이 합리적입니까? 다른 아이디어?

추신 : 그룹화 구조 내 백엔드 데이터 모델에 존재하지 않는 (나는 그것을 도입 피하기 위해 같은 것), 그래서 이것은 것 같다

답변

1

클라이언트 측에서 즉시 발생해야하는 일부 매핑 두 가지 옵션의 하이브리드가 실행 가능할 것입니다. 다음과 같이 아마이 접근 것 :

  1. 대신 Header, 당신이 ItemGroup 모델을 (좀 더 자세한 설명) 즉 ItemCollection 큰의 파티션 것 그 collection의 내부 Item의를 렌더링 할 수 있습니다.
  2. 상위 뷰를 렌더링 할 때 파티셔닝 자체를 수행 할 수 있습니다. 부모 뷰는 AppView이라고합니다. AppView#render에서 원하는대로 데이터를 분할하십시오. (당신은 명시 적으로 데이터를 분할하는 방법을 요구하지 않았다,하지만 당신은 몇 줄의 코드에 그렇게 밑줄을 사용할 수 있습니다.) ItemCollectionaddremove 이벤트에
  3. 바인딩 AppView#render, 때마다 새로운 있도록 항목이 추가되면 파티션이 다시 렌더링됩니다.
관련 문제