jon*_*omo 4 meteor spacebars meteor-helper
因此,当我使用Meteor时,我正试图在我的Spacebars模板中保持高效和干净.但我对处理复选框和选择选项的方式感到困惑.假设我想要一个复选框设置为是否选中,具体取决于我的某个集合中的文档中的标志.我似乎无法执行以下操作:
<input type='checkbox' id='item-{{this.item_id}}' {{#if checked}}checked{{/if}} />
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我收到以下错误:
A template tag of type BLOCKOPEN is not allowed here.
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试以下选项,它们都会导致复选框被检查,即使标志是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}}' />
Run Code Online (Sandbox Code Playgroud)
我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>
Run Code Online (Sandbox Code Playgroud)
您可以使用非块助手来放置这样的参数:
UI.registerHelper('checkedIf', function(val) {
return val ? 'checked' : '';
});
<input type="checkbox" {{checkedIf checked}}>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4621 次 |
| 最近记录: |