Iron Router和函数计算的问题+模板渲染

时间:2015-10-27 16:40:06

标签: meteor iron-router

我在从服务器接收订阅之前遇到模板呈现问题+计算功能计算实际呈现它的必要数据。有时,它工作正常,进程首先订阅MongoDB,呈现我的computeValues()函数,然后加载模板。当我再次尝试相同的事情时,模板在计算实际数据之前呈现并导致以下错误:

  

模板助手中的异常:TypeError:无法读取属性'长度'   未定义的

这显然告诉我,computeValues()函数在没有从我的订阅中获取数据的情况下运行,在那里它通过一个空数据库并且无法正常进行计算。

以下是Iron:路由器代码:

Router.route("/management/bankroll", {
subscriptions: function(){
  return Meteor.subscribe("bank");
},
action: function(){
this.wait(computeValues());

if(this.ready()){
  this.layout("bankroll");
} else{
  this.layout("loading");
}
},
name: "bankroll"
});

我尝试了各种各样的钩子,比如onBeforeAction,我使用.wait()......几乎任何东西,行为仍然是一样的。一个例子,上传工作,模板渲染等待,直到数据被拉出,如果我再次尝试,计算功能会在收到订阅之前运行。

我也使用waitOn进行订阅,但也没有 它基本上是在computeValues函数执行计算之前的模板渲染,因为无法及时检索订阅。这种情况更常发生在较大的文件中,其中检索订阅的时间会更长。

任何人都知道这是什么问题?

0 个答案:

没有答案