我希望做一些非常简单的事情,即将数据库中字段的值转换为助手中的变量。该文件如下:
{
hero: "Simon Belmont",
universe: "Castlevania",
items: ["Whip", "Cross", "Oak Stake"]
}
在帮手中,我想做类似的事情:
var selectedHeroId = Session.get('whichHeroSelected')
var heroItems = Heroes.findOne({_id: selectedHero}).items
然而,事实证明这是非常善变的。有时它会抱怨items
没有定义。奇怪的是,当我将变量命名为items
时,它会起作用,但在我将其命名为heroItems
或itemsArray
时则无效。
所以我正在寻找一种方法来确保在数据库中查找内容之前订阅Heroes
。顺便说一句,我在Iron Router的waitOn
函数中订阅了它。
答案 0 :(得分:2)
听起来你只需要一个guard:
Template.myTemplate.helpers({
items: function() {
var selectedHero = Heroes.findOne(Session.get('whichHeroSelected'));
return selectedHero && selectedHero.items;
}
});