Meteor中的数据上下文使回调变得不可靠

时间:2014-07-26 14:57:32

标签: javascript meteor

我已经有一段时间没有这个问题,但由于它在我的应用程序的管理员方面,我只是处理它。现在它很烦人。

路线为post_detail。我为这条路线指定了一个数据上下文:

data: function() {
    return Posts.findOne(this.params._id);
}

所以路由应该有一个数据上下文。订阅采用waitOn功能。

在该路由的渲染回调中,我有:

var tag_obj = this.data.tags;

大多数情况下,this.data是undefined。通常(但不总是),当我刷新页面时,我得到了数据。有时我必须尝试几次,有时我必须在页面之间来回移动才能显示数据。这是不可预测的。

似乎数据上下文在调用呈现的回调时始终没有准备好......但我认为这是waitOnrendered回调的重点?我已经尝试使用document.ready()delay函数给它时间加载但没有运气。

知道可能导致这种情况的原因吗?

有没有办法在rendered回调中等待数据上下文准备好?我见过的所有例子都假设它已经存在并准备好了......

1 个答案:

答案 0 :(得分:2)

我觉得它有点奇怪,但Iron Router并没有等待默认情况下所有订阅都准备就绪。但是,如果您在某处添加Router.onBeforeAction('loading'),它将在呈现模板之前等待所有订阅准备就绪。