Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 铁路由器waitOn Meteor.user()_Javascript_Meteor_Iron Router - Fatal编程技术网

Javascript 铁路由器waitOn Meteor.user()

Javascript 铁路由器waitOn Meteor.user(),javascript,meteor,iron-router,Javascript,Meteor,Iron Router,我会在data iron router中使用Meteor.user(),但这在开始时是未定义的 我正在尝试: waitOn: function() { return curretUserHandle; }, data: function() { // access to Meteor.user().username, give me undefined [...] var curretUserHandle = { ready: function () {

我会在data iron router中使用Meteor.user(),但这在开始时是未定义的

我正在尝试:

waitOn: function() {
   return curretUserHandle;
},
data: function() {
   // access to Meteor.user().username, give me undefined

[...]

var curretUserHandle = {
    ready: function () {
        return 'undefined' !== typeof Meteor.user();
    }
};
但route的数据函数总是在curretUserHandle.ready()返回true之前调用

我知道我可以在数据中添加if(Meteor.user()),但是这个选项不喜欢


为什么数据不等待Meteor.user()准备就绪?

只能作为解决方法使用:

if(this.ready())

数据
函数中

添加“神奇地”解决了这个问题

但是,请阅读关于必要安全措施的说明:

您有
路由器.onBeforeAction('load')
吗?没有它,
waitOn
不会等待。是的@PeppeL-G,我有:
loadingTemplate:'Loading'
Router.onBeforeAction('Loading')。。。只有当用户直接进入路由或刷新页面(F5)时,问题才会出现。我很好奇,为什么您会让hadle变得如此复杂。我非常确定,您所需要的只是
返回!!Meteor.user()
.ehehe。。。你有权@apendua。我从另一个地方进行了复制和粘贴,我不关心代码…但问题仍然存在:(@elbowz-Hmm这很神秘。我相信它只解决了在第一页刷新时运行的iron路由器初始化代码和检查用户登录数据之间的竞争条件。其他反应变量对我来说在waitOn上工作得很好。我遇到过这样的情况。ready()返回true而不订阅数据。检查控制台后,数据不存在。iron:路由器有太多神奇的问题。