2013-06-19 4 views
5

현재 Backbone forms을 사용하고 있습니다.중첩 모델 및 사용자 지정 템플릿이있는 백본 양식

현재 중첩 모델을 사용하여 잘로드되는 스키마가 있습니다. 템플릿으로 시도하고 스타일을 지정할 때 예상되는 결과를 얻지 못합니다.

bedrooms: { 
    type: 'NestedModel', 
    model:Bedroom, 
    editorAttrs: { 
    class: 'bedrooms' 
    } 
} 

이이에 의해 호출되는 사용자 지정 서식없이 올바르게 표시 :

<div class="bounding"> 
    <h2>Title1 </h2> 
     <div data-fields="name,type"></div> 
     <div data-fields="bedrooms"></div> 
    </div> 
    <div class="bounding"> 
     <h2>Title 2</h2> 
     <div data-fields="description"></div> 
    </div> 

침실

과 같이 스키마에 정의되어

템플릿은 다음과 유사합니다

template: _.template($('#formTemplate').html()) 

이 줄을 제거하면 사용자 지정 서식 파일이 올바르게 표시됩니다.

<div data-fields="bedrooms"></div> 

사용자 지정 템플릿과 중첩 모델을 모두 사용할 수있는 방법이 있습니까? 중첩 모델에는 템플릿이 정의되어 있지 않으며 스키마 만 추가되었습니다.

감사

업데이트 : Js Fiddle 부착 등

// template: _.template($('#formTemplate').html()), 

는 작업 방식을 볼 수 전환해야하며 올바른

UPDATE보고하지 :

Tommi Komulainen 매우 가까이 그의 대답은 Here이고, 설명은 실제로는 첫 번째 경계 div가 아니라 둘째. 이것을 어떻게 두 번째로 옮길 수 있습니까?

업데이트 2 :

임 (가) 현재 중첩 된 각 항목의 렌더링 호출하고 기본이 현재 작동하고 있지만 "좋은"솔루션 같은 느낌이 나던이

form.fields.bedrooms.render(); 
$('#bedrooms').html(form.fields.bedrooms.el); 

처럼 렌더링 한 후 다시 주입

+0

Update2의 해결책은 '좋았습니다'라고 느낄 수는 없지만, 마리오 네트와 같은 멋진 프레임 워크를 사용하지 않고서는 백본과 때로는 관련이 있습니다. – damienc88

답변

2

템플릿 전체에 래퍼 DIV 태그를 추가해보십시오. 템플릿에는 하나의 기본 포함 요소가 있어야합니다.

+0

이미 있습니다. 아픈 더 볼 수 있지만 거기에 테두리가 – exussum

+0

그 div 아니, 그

그게 무슨 상관이야? – exussum

+0

괜찮을 것입니다. 발생하는 문제를 보여주는 jsfiddle 예제를 설정할 수 있습니까? – evilcelery

1

나는 <div data-fields="bedrooms"></div> 대신

<div data-fieldsets="bedrooms"></div> 

해야한다고 생각합니다.

+0

시도 - 모든 것을 두 배로 늘리는 것 같습니다 – exussum

+0

[업데이트 된 jsfiddle] (http://jsfiddle.net/TvFxt/3/)이 나에게 합리적인 것처럼 보입니다. 내가 놓친 게 있니? –

+0

http://jsfiddle.net/TvFxt/2/ 내가 만든 업데이트 - 차이점은 무엇입니까? 너 괜찮아 보이는데 -하지만 그 차이를 이해 못 하겠어? – exussum