使用 Blaze 在 Meteor 中有条件地将复选框标记为已选中
Conditionally mark a checkbox as checked in Meteor using Blaze
我不完全确定这里出了什么问题,或者我应该如何以不同的方式处理它 - 但谷歌搜索只是提出对 'isChecked' 的引用 - 我没有使用的东西。
我只想在相关字段值存在时将复选框标记为已选中:
<input type="checkbox" name="services.bananaExports" {{ #if currentUser.profile.services.bananaExports }} checked {{ /if }} />
但我得到:
Reactive HTML attributes must either have a constant name
or consist of a single {{helper}} providing a dictionary of names and
values. A template tag of type BLOCKOPEN is not allowed here.
老实说,我不确定它想告诉我什么,我是 meteor/blaze 的新手,但这是一个非常基本的 if 子句?我可以不在这里发出 if 语句吗?如果不是,我将如何处理?
我能想到的最好的解决方案是像这样定义一个助手:
Template.registerHelper('isTruthy', function(varName) {
return !!varName;
});
那么你可以这样做:
{{#each foodList}}
{{foodName}} <input type="checkbox" checked={{isTruthy eaten}}>
{{/each}}
当然,你的情况是:
<input type="checkbox" name="services.bananaExports" checked={{isTruthy currentUser.profile.services.bananaExports}}>
我不完全确定这里出了什么问题,或者我应该如何以不同的方式处理它 - 但谷歌搜索只是提出对 'isChecked' 的引用 - 我没有使用的东西。
我只想在相关字段值存在时将复选框标记为已选中:
<input type="checkbox" name="services.bananaExports" {{ #if currentUser.profile.services.bananaExports }} checked {{ /if }} />
但我得到:
Reactive HTML attributes must either have a constant name or consist of a single {{helper}} providing a dictionary of names and values. A template tag of type BLOCKOPEN is not allowed here.
老实说,我不确定它想告诉我什么,我是 meteor/blaze 的新手,但这是一个非常基本的 if 子句?我可以不在这里发出 if 语句吗?如果不是,我将如何处理?
我能想到的最好的解决方案是像这样定义一个助手:
Template.registerHelper('isTruthy', function(varName) {
return !!varName;
});
那么你可以这样做:
{{#each foodList}}
{{foodName}} <input type="checkbox" checked={{isTruthy eaten}}>
{{/each}}
当然,你的情况是:
<input type="checkbox" name="services.bananaExports" checked={{isTruthy currentUser.profile.services.bananaExports}}>