更新属性Meteor / MongoDB无法正常工作

时间:2015-04-07 00:42:00

标签: javascript mongodb meteor

我正在尝试通过单击按钮来更新文档。但是,我一直得到一个"内部错误"信息。我想要更新的文件被称为"已确认"它可以采用真/假值。

这是我的methods.js

Meteor.methods({

'confirmUser1': function(currUserId) {
    var currentUserId = currUserId;
    Meteor.users.update(currentUserId, {$set:
        {
            'confirmed': true
        }
    });
    console.log('user verified!');
}
});

这是我的模板活动助手:

Template.Users.events({
'click .confirmUser': function(e, tmpl) {
    e.preventDefault();
    var currentUserId = this._id;

    Meteor.call('confirmUser1', currentUserId, function(error) {
        if (error) {
            alert(error.reason);
        } else {
            console.log('success!');
            Router.go('Admin');
        }
    });
}
});

我的按钮:

<p><button class="confirmUser">Confirm User</button></p>

注意: 我使用与此非常相似的代码用于不同的更新按钮/方法,它工作正常......所以我不确定是什么&# 39; s继续在这里。

1 个答案:

答案 0 :(得分:2)

尝试使用Meteor.userId();,事件处理程序内部的上下文与使用Template.helper

内部完全不同

如果你做了console.log(currentUserId),你应该得到未定义。

所以改变这个

var currentUserId = this._id;

到此。

var currentUserId = Meteor.userId();