2017-02-28 109 views
1

我有一些代碼,將數據插入模板如何標記在模板中選擇與骨幹

<script type="text/template" id="yes-or-no-tpl"> 
    <select> 
    <option value=""></option> 
    <option value="y" <%= "y" == value ? "selected" : "" }}>Yes</option> 
    <option value="n" <%= "n" == value ? "selected" : "" }}>No</option> 
    </select> 
</script> 

到目前爲止,我只找到關於如何在選擇一個選項,用戶反應的問題。我想在用戶看到該字段之前將選項標記爲選中狀態。

此代碼有效,但我認爲必須有更優雅的解決方案。骨幹有內置的東西來做到這一點?

我檢出了backbone-forms,但我沒有找到任何方法來指定預先選擇的選項。

回答

3

在渲染模板後,您可以隨時通過jQuery以編程方式執行此操作。這裏沒有太多的儲蓄可供選擇,但如果你在選擇中有50個選項,它會減少很多。

var value = 'n' 
 
    , tmpFn = _.template($('#yes-or-no-tpl').html()) 
 
    , $el = $('#result'); 
 
    
 
$el.html(tmpFn()); 
 
$el.find('option[value="' + value + '"]').attr('selected', 'selected'); 
 

 
// view.$el.html(tmpFn()); 
 
// view.$('option[value="' + value + '"]').attr('selected', 'selected');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script> 
 
<script type="text/template" id="yes-or-no-tpl"> 
 
    <select> 
 
    <option value=""></option> 
 
    <option value="y">Yes</option> 
 
    <option value="n">No</option> 
 
    </select> 
 
</script> 
 
<div id="result"/>

以及有關建於選項,骨幹不包含任何數據綁定。你可以看看像Epoxy.js這樣的附加庫,但要注意維護不當的工具,從長遠來看可能會更麻煩。

+1

我懷疑jQuery可能是要走的路。我給它的例子確實很簡單。大多數有這個問題的模板有超過10個選項,有些超過100個。謝謝你的例子。 – ordonezalex