我有一个手柄模板,我嵌入我的html页面.有一个select元素,所有可用选项已经呈现.当我渲染我的模板时,如何设置选择列表的选定值?
<script id="my-template" type="text/x-handlebars-template"> <div id="my-modal"> <form action="/TestAction" method="post"> <input id="MyId" name="MyId" type="hidden" value="{{MyId}}" /> <label for="Test">Test: (optional)</label> <select id="Test" name="Test"> <option value="">-- Choose Test --</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </form> </div> </script>
解决方法
如果您不想将该选项作为助手的一部分,您可以使用一个小型自定义句柄助手和父上下文的组合,使用../语法表示:
首先写助手:
Handlebars.registerHelper('selected',function(option,value){ if (option === value) { return ' selected'; } else { return '' } });
然后在你的模板中,你调用你的帮助器,并传递每个循环中的父上下文以检查selectedState
{{#each states}} <option value="{{this}}" {{selected this ../selectedState}}>{{this}}</option> {{/each}}