将参数传递给Meteor Template Helper

时间:2015-06-17 10:50:33

标签: meteor spacebars

我正在尝试将参数传递给模板助手。该参数似乎已通过但我不能按照我的意愿使用它。

我传递了这样的参数:

{{#if unitFieldExists 'profile'}}
  {{profile}}
{{/}}

/client/lib/helpers.js中的助手

Template.registerHelper('unitFieldExists', function(unitField) {
var doc = Units.findOne({_id: this._id }, { unitField : {$exists: true} });

// console tests
console.log(unitField); // Outputs profile
console.log(doc); // Outputs document object

// unitfield if of type string
console.log(typeof unitField + " " + unitField); // string

if (doc.unitField) {
    return true;
} else {
    return false;
}
});

我想要实现的是,如果文档包含传递的字段,则返回true到#if。我可能过度复杂,但我还在学习。

1 个答案:

答案 0 :(得分:2)

您无法使用#if中的参数调用助手。

由于您使用了Unit,我认为模板实例的数据上下文是this._id文档。如果是这样,可以这样做;

{{#if profile}}
  {{profile}}
{{/if}}

#if检查其参数是否真实。