我在帮助器中使用Meteor.user()。profile。当我注销时,我得到错误配置文件未定义。我的代码如下:
Template.listedWork.helpers({
workList: function() {
if (Meteor.user().profile.yetki == 1) {
return Work.find({})
} else {
return Work.find({
username: Meteor.user().username
});
}
}
});
我正在列出的工作页面中进行注销,例如:localhost / listedWork。那是铁路由器渲染代码
Router.route('/listedWork', {
action: function() {
this.render('listedWork');
},
onBeforeAction: function() {
if (!Meteor.userId()) {
this.layout("loginLayout");
this.render('login');
} else {
this.next();
}
}
});
当我在这里注销时,Meteor.user()。profile被workList调用,这就是我收到此错误的原因。
登录模板在onBeforeAction中渲染以进行注销。为什么列出工作模板帮助器在这里调用它。
感谢您的帮助。
答案 0 :(得分:0)
注销后未定义Meteor.user()。配置文件的原因是因为您不再拥有Meteor.user()。您需要在助手中检查这一点,并在Meteor.user()返回null时执行适当的操作。
Template.listedWork.helpers({
workList() {
if( !Meteor.user() ) {
// Handle the case. Redirect to /login or something.
}
else {
// Your current helper code here.
}
}
});