我有这个模板:
<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;未定义的
答案 0 :(得分:2)
最简单的方法是使用{{currentUser._id}}
Meteor.user()._id
是正确的。问题是当您加载页面时,最初数据不可用,并且Meteor.user()
将为空,直到建立DDP连接并且您的浏览器将您登录(这需要几百毫秒)。 Meteor.user() && Meteor.user()._id
要纠正此问题。
两个Meteor.user()._id
之间的区别在于,您传递的是加载模板时加载的第一个静态值。即使Meteor.user()
发生变化,您也会坚持这样做,或者您退出。
当您传递function
时,您告诉帮助者可以重新计算,如果有任何被动改变,它将会更新。