2012-08-16 2 views
4

간단하고 간단한 질문 :보기에 두 개 이상의 하위보기가 포함되어있는 경우. 보기 컨테이너가 레이아웃보기 여야합니까?중첩 된 뷰가 레이아웃 뷰 여야합니까?

그렇지 않은 경우 어떤 대안이 있습니까?

업데이트 :

내 코드 : 당신이 다른 시간에 하위 뷰를 대체 될 경우, 또는 하위 전망은 매우 다른 종류의 경우

var LikeButtonModal = Backbone.Model.extend({ 
    url: 'api/profile/like/' 
}); 

var LikeButton = Backbone.Marionette.ItemView.extend({ 
    tagName: 'button', 
    className: 'like', 
    template: '<div>like</div>', 
    events: { 
     'click' : 'like' 
    }, 
    initialize: function(userId){ 
     this.model = new LikeButtonModal(); 
    }, 
    like: function(){ 
     this.model.save(); 
    } 
}) 

var LeftProfileView = Backbone.Marionette.Layout.extend({ 
    template: '#profile-left', 
    regions:{ 
     extra : '.extra' 
    }, 
    initialize: function(){ 
     this.on("item:rendered", this.editable, this); 
    }, 
    onRender: function(){ 
     if(this.model.get('userid') != ActiveUser.get('userid')){ 
      this.extra.show(new LikeButton(this.model.get('userid'))); 
     } 
    } 
}); 

답변

4

레이아웃이에 대한 좋은 ... 예를 들어 레이아웃에는 머리글, 내비게이션 및 기본 컨텐트 영역이 포함될 수 있습니다.

기타 옵션은 CollectionViews 및 CompositeViews입니다.

컬렉션보기는 컬렉션의 각 항목에 대해 동일한 유형의보기를 사용하여 항목 모음을 렌더링합니다. 이것은 일의 목록에 대해 잘 작동합니다.

CompositeViews는 컬렉션 주위에 래퍼 템플릿을 렌더링 할 수있는 CollectionViews입니다. 예를 들어, HTML 테이블 구조. table, thead, tbodytfooter 태그를 CompositeView의 래퍼 템플릿에서 렌더링 한 다음 tbody 태그로 항목 모음을 렌더링 할 수 있습니다.

도 주제에 좀 더 도움이 되거 수 :이 경우 하위 뷰를 대체하고 있지 않다 https://github.com/derickbailey/backbone.marionette/wiki/Use-cases-for-the-different-views

+0

. 나는 그것이 별도의 지역을 부여한 버튼이있는 메뉴를 가지고있다. 왜냐하면 그것은 자신의 모델과 약간의 로직을 가지고 있기 때문이다. 이 목적을 위해 사용하는 것이 잘못 되었습니까? 모든 문서를 읽었지만 논리가 포함 된 정적 하위 뷰를 처리하는 방법을 모르겠습니다. – Boedy

+0

해당 상황에서 레이아웃이 잘 작동합니다. –

+0

내 게시물을 업데이트하고 코드를 추가했습니다. 이것이 어떻게해야 하는가? 또는 당신의 의견에 더 좋은 방법이 있습니까? – Boedy