我有以下代码,其中'消息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);
} );