如何在模板渲染之前获取Meteor mongodb变量

时间:2015-05-28 21:37:23

标签: javascript meteor spacebars

我有以下代码,其中'消息B'在消息A'之前输出。这是正确的操作吗?我认为onCreated中的函数首先在帮助程序之前执行,但似乎并非如此。因此,模板中的变量x(从mongodb获得)有时会产生并且有时没有值。

我也尝试过使用Meteor.apply,但结果不一致。

我做错了什么?

Template.homepage.onCreated( function() {
    Meteor.call('getvalueofX', function(err,result){
        if(!err) {
              //Message A
             console.log("Message A: setting session variable x = " + result);
             Session.set("x",result);
        } 
    }
  });

Template.homepage.helpers({ 
    x: function() {
           // Message B
           console.log("Message B: getting session variable x = " + Session.get("x"));
           return Session.get("x");
    },

 });

<template name="homepage">
<script type="text/javascript">
 var x = '{{x}}';
  // the javascript variable is often undefined here 
  // which causes the app to break
</template>

我尝试使用下面显示的Meteor.apply,但我得到了同样的错误:

// still doesn't work
 Meteor.apply('getvalueofX',[],true,function(err,result) { 
            if(!err) Session.set("x",result);
   } );

0 个答案:

没有答案