以下代码按预期工作,即如果有文档则帮助器返回true,如果没有文档则返回false。但是,我正在我的控制台上发出警告。
"错误:模板帮助器中的异常: TypeError:无法读取属性' filepickerId'未定义的 在Object.Template.navigation.helpers.ichk ..."
警告不一致,不确定为什么我这样。然而,代码再一次没有任何我可以说出的流程。
Template.nav.helpers({
'ichk': function(){
var ct= Info.findOne({_id:Meteor.userId()});
if (ct.profilepic.filepickerId) {
return true;
}else{
return false;
}
答案 0 :(得分:2)
您需要guard。您的助手可以像这样重写:
Template.nav.helpers({
ichk: function () {
var ct = Info.findOne({ _id: Meteor.userId() });
return !!(ct && ct.profilepic && ct.profilepic.filepickerId);
}
}
答案 1 :(得分:1)
如果它有效,你应该再添加一行以消除异常。
Template.nav.helpers({
'ichk': function(){
var ct= Info.findOne({_id:Meteor.userId()});
if(ct){
if (ct.profilepic.filepickerId) {
return true;
}
else{
return false;
}}
通过这种方式,您首先检查文档是否存在。