Meteor Helpers - 检查文档是否存在的函数

时间:2016-03-05 18:05:48

标签: meteor

以下代码按预期工作,即如果有文档则帮助器返回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;
            }

2 个答案:

答案 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;

                }}

通过这种方式,您首先检查文档是否存在。