我对Angular2和Meteor很新。 我想做一件非常简单的事情:使用Meteor.user()从Meteor获取当前用户信息。 问题是,每当我刷新页面时,Meteor.user()的配置文件值变为"未定义"。
我做了一些搜索,显然Meteor.user()太长了,无法执行。 显然,您可以使用Tracker.autorun()等待Meteor.user()进行初始化。
目前我的代码看起来像这样:
Tracker.autorun(function () {
Meteor.subscribe("userLoggedIn");
console.log(Meteor.user());
if(Meteor.user() !== undefined) {
//Do something
this.myFunction();
}
});
事情是" myFunction"是"未定义"因为它没有在追踪器中定义(至少我认为)。
你知道我怎么称呼我的功能? 可以在跟踪器中执行那么多代码吗? 是否可以在Tracker之外等待Meteor.user()的初始化?
(是的,我有很多疑问:p)
提前谢谢! :)
答案 0 :(得分:0)
如果您依赖this
,为什么不使用箭头功能来保持上下文?
Tracker.autorun(() => { this.myFunction(); });
您还可以设置范围变量,旧学校方式:
var self = this;
Tracker.autorun(function () { /* bla bla */ self.myFunction(); });