2012-07-23 3 views
3

다음 CompositeView (1) 있습니다.
MyCollection의 각 모델에 대해 (2)와 같은 것을 만들기 위해 두 개의 템플릿과 뷰를 렌더링하는 가장 좋은 방법이 무엇인지 궁금합니다.CompositeView 및 ItemView, 두 개의 뷰와 템플릿을 처리하는 방법은 무엇입니까?


(1)

var MyCompositeView = Marionette.CompositeView.extend({ 

    template: myTemplate, 

    itemView: myView, 

    collection: new MyCollection(), 

    initialize: function() { 
     this.collection.fetch(); 
    }, 

    appendHtml: function (collectionView, itemView) { 
     collectionView.$el.find('ul').append(itemView.el); 
    } 

}); 

(2)

appendHtml: function (collectionView, itemView1, itemView2) { 
     collectionView.$el.find('ul').append(itemView1.el); 
     itemView.$el.append(itemView2.el); 
    } 
+0

게시 한 이후로 어떤 진전을 보았습니까? 매우 비슷한 문제를 다루고 있습니다. http://stackoverflow.com/questions/16039722/using-jquery-tabs-with-marionette-layouts – streetlight

답변

2

목표를 달성하기위한 또 다른 방법, 결과는 동일해야합니다, Marionette.ItemViewonRender funciton을 정의하는 것입니다 :

Marionette.ItemView의 코드는 다음과 같아야합니다 :

onRender: function() { 
     var itemView2 = new ItemView2(); 

     itemView2.render(); 
     this.$el.append(itemView2.$el); 
    } 
+0

이렇게하면 합성보기의 필요성이 무효화됩니까? 또는 복합보기에서 호출되는 itemView입니까? 예를 보여 줄 수있는 방법이 있습니까? – streetlight