显示Meteor.user()

时间:2015-04-15 14:56:58

标签: javascript meteor

我有这个模板:

<template name="index">
  {{#if currentUser}
    {{userid}}
  {{/if}}
</template>

之间有什么区别
Template.index.helpers({
    userid: function() {
        return Meteor.user()._id;
    }
});

Template.index.helpers({
    userid: Meteor.user()._id
});

最后一个给出了这个错误: 未捕获的TypeError:无法读取属性&#39; _id&#39;未定义的

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用{{currentUser._id}}

Meteor.user()._id是正确的。问题是当您加载页面时,最初数据不可用,并且Meteor.user()将为空,直到建立DDP连接并且您的浏览器将您登录(这需要几百毫秒)。 Meteor.user() && Meteor.user()._id要纠正此问题。

两个Meteor.user()._id之间的区别在于,您传递的是加载模板时加载的第一个静态值。即使Meteor.user()发生变化,您也会坚持这样做,或者您退出。

当您传递function时,您告诉帮助者可以重新计算,如果有任何被动改变,它将会更新。