2014-06-10 5 views
0

백본/마리오네트 CollectionView를 span 태그로 묶어서 SELECT 요소의 스타일을 지정할 수 있습니다.다른 요소에 Marionette CollectionView 배치하기

내가하려고하면 :

 ProductOptionsView: Marionette.CollectionView.extend({ 
     tagName: 'select', 
     className: 'prod-options', 
     itemView: self.views.ProductOptionsItemView, 

     onRender: function() { 
      var $option = $('<option data-price="' + self.currentBasePrice + '" value="-1">Select an option</option>'); 
      this.$el.attr('id', 'options-select'); 
      this.$el.wrapAll('<span class="sold" /'); 
<snip~> 

wrapAll에() 호출이 발생하지 않습니다. select 태그에 모든 스타일을 직접 적용 할 수는 있지만 지원되지는 않습니다. Marionette 또는 Backbone docs에서 HTML이 실제로보기에서 출력되는 것을 수정하는 방법을 보여주는 어떤 것도 찾을 수 없습니다.

또는 'span'태그를 설정하고 그 아래에 옵션이있는 선택 항목을 만들 수 있다면 가능할 수도 있습니다.

답변

2

이 DOM에 추가되기 전에 onRender이 호출되기 때문에 onShow을 시도하십시오.

view.el이 DOM에 추가되므로 onRender에 배치하면 실제로 아무 것도 수행하지 않습니다.

+0

완벽합니다.하지만 주입하기 전에 포장하는 것이 생각보다 복잡합니다. 복제하는 것보다 복제품을 추가하고 복제 된 노드를 다시 주사하는 것보다 효과적일까요? 렌더링하기 전에이 모든 작업을 수행 할 수 있습니까? –

+0

당신은 (당신의 사용 지역을 가정 할 때) [맞춤 지역] (https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.region.md#custom-region-types)을 만들 수 있습니다. 그. ['open' 방법을보십시오 (https://github.com/marionettejs/backbone.marionette/blob/master/src/marionette.region.js#L175) – kalley

관련 문제