我希望做一些非常简单的事情,即将数据库中的字段值转换为助手中的变量。该文档如下所示:
{
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
函数中订阅了它。
最佳答案
听起来你只需要一个 guard :
Template.myTemplate.helpers({
items: function() {
var selectedHero = Heroes.findOne(Session.get('whichHeroSelected'));
return selectedHero && selectedHero.items;
}
});
关于meteor - 在助手中查找之前如何确保我的订阅已准备好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30310584/