有条件地使用Blaze在Meteor中选中一个复选框

时间:2015-08-17 16:15:06

标签: meteor meteor-blaze

我不完全确定这里有什么问题,或者我应该以不同的方式处理它 - 但谷歌搜索引出了'isChecked'的引用 - 我没有使用它。

如果关联的字段值存在,我只想将复选框标记为已选中:

<input type="checkbox" name="services.bananaExports" {{ #if currentUser.profile.services.bananaExports }} checked {{ /if }} />

但我得到了:

  

反应性HTML属性必须具有常量名称      或者由一个{{helper}}组成,提供一个名字和字典      值。此处不允许使用BLOCKOPEN类型的模板标记。

老实说,我不确定那是什么试图告诉我,我是流星/火焰的新手,但这是一个非常基本的if条款?我可以在这里发出if声明吗?如果不是,我将如何处理这个?

1 个答案:

答案 0 :(得分:2)

我能想到的最好的解决方案是定义一个像这样的帮手:

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}}>