将用户数据传递到流星模板时,无法读取未定义错误的属性

时间:2016-09-23 10:08:57

标签: javascript meteor

所以我不断收到以下错误:Exception in template helper: TypeError: Cannot read property '_id' of undefined at Object.editable。我一直试图调试它,但没有运气。

我试图将user object传递给editUser template。因此,当我点击编辑并获取表单时,我将能够在输入字段中看到user previous values,但我无法将值显示在表单上。

以下是我现在的代码:

# users.js

// Helpers
Template.user.helpers({
    user: () => {
        let user =  Meteor.user() ? Meteor.user() : 'Unable to pull user info';
        return user
    },
    editable: function () {

        let currentUserId =  Meteor.user()._id;
        let currentUser =  Meteor.user();

        // let currentUserFind = Meteor.users.findOne({_id: this._id});

        return Session.equals('editUser', currentUserId);
    }
});


# user.tpl.jade
// Events
Template.user.events({
    'click .form-edit'(e) {
        e.preventDefault();

        let currentUser=  Meteor.user({});
        let currentUserId =  Meteor.user()._id;
        let currentUserFind = Meteor.users.findOne({_id: this._id});

        console.log(currentUserId); 
        console.log(currentUserFind);   
        // console.log(this._id);

        Session.set('editUser', currentUserId);
        // Session.set('editUser', this._id);
    }
});

if editable
    +editUser
else
    with currentUser
        .card.card--user
            h3.card__title= username
            p.card__content= profile.email
            p.card__content= profile.firstName
            p.card__content= profile.lastName
            p.card__content= profile.bio
            button.card__btn.form-edit Edit

我试过传递id和。{ user object但我不能让错误消失。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

当您不导入Meteor伪全局时,我已在Meteor.user()._id看到此异常。一旦import {Meteor}异常将消失。 Meteor.userId()也会开展工作。