因此,在与Meteor一起工作时,我试图在Spacebars模板中保持高效和整洁。但是我对处理复选框和选择选项的方式感到困惑。假设我想根据我的其中一个收藏夹中的文档中的标志来设置是否已选中复选框。我似乎无法执行以下操作:
<input type='checkbox' id='item-{{this.item_id}}' {{#if checked}}checked{{/if}} />
尝试此操作时,出现以下错误:
A template tag of type BLOCKOPEN is not allowed here.
但是,如果尝试以下选项,则即使标记为,它们也会导致复选框被选中false
:
<input type='checkbox' id='item-{{this.item_id}}' checked='{{#if checked}}true{{/if}}' />
<input type='checkbox' id='item-{{this.item_id}}' checked='{{#if checked}}true{{else}}false{{/if}}' />
我selected
在选择选项时遇到了同样的麻烦,因此我最终做了如下操作来解决它,这似乎很冗长且容易出错:
<select id='option-{{this.item_id}}'>
{{#if option_60}}
<option value='60' selected>1 hour</option>
{{else}}
<option value='60'>1 hour</option>
{{/if}}
{{#if option_90}}
<option value='90' selected>90 mins</option>
{{else}}
<option value='90'>90 mins</option>
{{/if}}
{{#if option_120}}
<option value='120' selected>2 hours</option>
{{else}}
<option value='120'>2 hours</option>
{{/if}}
</select>
您可以使用非阻塞帮助器来放置此类参数:
UI.registerHelper('checkedIf', function(val) {
return val ? 'checked' : '';
});
<input type="checkbox" {{checkedIf checked}}>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句