选中的元素需要有这个属性:
selected="selected"
(或一些变体 - 刚刚选择工作正常)
要有条件地包含它,请创建一个模板助手(例如称为 isSelected),根据您的逻辑返回真/假。您的选项的 html 循环将如下所示:
<option value = "{{value}}" {{#if isSelected}} selected="selected" {{/if}} >
{{description}}</option>
作为一种改进,而不是帮助程序,您可以向每条记录添加一个名为 isSelected 的真/假字段。模板不关心它是字段还是助手。
对于“使用#with 似乎只有一个级别......也就是说,我不能在已经存在的#with 内部使用#with”
我已经通过对外部对象的引用来修复内部对象,因此两者都可以在嵌套的 with 中访问。例如,要将一个集合的任何/全部与文档相关联,我准备数据:
Handlebars.registerHelper 'allSureties', (document) ->
included = document.sureties or [] # the array that tracks ids for surety recs that this doc has
_.map _sureties, (sure) ->
sure.owner = document
sure.isContained = sure._id in included
sure.vents = "agent:sureties:#{document._id}:#{sure._id}" # see you can get both IDs this way
sure
然后我的模板以这种方式使用(注意您可以访问 owner._id):
{{#each allSureties this}}
{{switch value=value
fname=nickname
group="sureties"
on=nickname
off=nickname
object=owner._id
vents=vents
_id=_id }}
{{/each}}
希望这可以帮助。