2012-12-08 4 views
0

제발, 최선을 다해 도와 줄 수 있습니까?백본 - 한 모델에 대한 조회수가 적음

서버에서 반환 된 개체 목록이 있습니다. 모두 동일한 속성을가집니다. 일부 속성의 값은 항상 동일하지 않습니다 (예 : 속성 "isBig"는 "true"/ "false"일 수 있음). 속성 값의 조합에 따라 응용 프로그램은 페이지에 "bigBox"또는 "smallBox"를 그리할지 여부를 결정합니다.

페이지 뷰에는 하나의 상자 모음이 있어야합니다.

"bigBox"및 "smallBox"중 하나에 대한보기가 있어야합니다. 맞습니까? 2 가지 모델을 유지해야합니까? 그들은 정확히 동일합니다 (값을 제외하고 ...) 모델에서 뷰를 선택할 수 있습니까?

안내해주세요.

감사합니다.

+1

그냥 팁 : 귀하의 질문은 이해하기가 매우 어렵습니다. 어쩌면 당신은 다른 방법으로 그것을 넣으려고 할 수 있습니다, 아마도 당신이 달성하려고하는 작은 코드 샘플을 제공합니까? – jevakallio

답변

2

네, 제대로 된 것 같습니다. 귀하의 데이터는 모두 동일합니다 그래서 당신은 단지 당신이 데이터를

내가 제안 있음을 표시하는 방법에 따라 1 개 모델과 별도의 뷰가 의미합니다 :

  • 1 모델 (박스)
  • 을 1 개 컬렉션 렌더링에서

(당신의 수집을 위해 (BoxesView)는 bigBox (BigBoxView 1 개보기)에서 smallBox (SmallBoxView 1 개보기)보기 "를 포함하는"1) (박스)

  • 3 조회 기능 컬렉션을 반복하면서 IsBig를 확인하고 그에 따라 각 뷰를 렌더 할 때 BoxesView를 사용합니다.
    //render function of BoxesView. Make sure to have a reference to 
    //your Boxes collection 
    render: function() { 
        var that = this; 
        this.collection.each(function(model) { 
         //depending on the isBig property render a different view 
         if(model.get("isBig") === true) 
          var bigView = new BigView({ 
           model: model 
          }); 
          that.$el.append(bigView.render().el); 
          // $el is the element you want to append all your boxes into 
         else { 
          var smallView = new SmallView({ 
           model: model 
          }); 
          that.$el.append(smallView.render().el); 
         } 
        } 
    } 
    

    는 다른 방법으로 (그들은 동일한 정보를 표시하고 동일한 작업을해야합니까)를 bigBox 및 smallBox는 행위로 생각하는 방법과 유사에 따라, 그것은 단지 하나의 BoxView를 그냥 통과에 적합 할 수 있습니다 보기를 구성 할 때 다른 템플리트에서.

  • +0

    안녕 hajpoj,'this' 변수를 선언하기 전에 'this.collection.each (function (model) {'line : – Cyclone

    +0

    네, 고마워요 :) – hajpoj

    관련 문제