2013-06-19 79 views
5

我目前使用的是Backbone forms帶有嵌套模型和自定義模板的主幹窗體

我目前有一個使用嵌套模型加載得很好的模式。當我嘗試使用模板進行設計時,我沒有得到預期的結果。

模板是類似於以下:

<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> 

臥室在模式中定義爲:

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

此正確地顯示而不正在由這稱爲自定義模板:

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

和自定義模板在刪除此行時看起來正確

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

有沒有一種方法可以同時使用自定義模板和嵌套模型?嵌套模型沒有定義模板,只添加了模式。

感謝

更新:Js Fiddle連接等等

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

應切換到看到一個工作方式,它不是在尋找正確的

UPDATE:

托米Komulainen非常接近與他的回答Here,說明實際上是在第一個邊界div,而不是第二。我怎樣才能把它移到第二個?

更新2:

林調用目前呈現每個嵌套的項目,並在之後的主要呈現這樣

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

目前這個工作,但犯規覺得自己是一個「好」的解決方案注入回

+0

Update2中的解決方案可能不會覺得'好',但是如果沒有使用像Marionette這樣的好框架,這些就是我們有時需要做的事情。 – damienc88

回答

2

嘗試在整個模板中添加包裝DIV標籤;模板需要有一個主要的包含元素。

+0

已經有了。病讓它更可見,但有一個邊界din – 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