我正在使用流星, 我的html中有一个把手标签
{{displayResult}}
在我的客户端JS文件中,我编写了这样的帮助器和存根方法
辅助功能 * 修改 *
displayResult:function(){
var abc;
var apiResultDependency = new Deps.Dependency();
Meteor.call('apiresult',function(e,result){
abc=result;
apiResultDependency.changed();
});
console.log(abc);
console.log(result);
apiResultDependency.depend();
return abc;//returning nothing
}
存根方法
Meteor.startup(function(){
return Meteor.methods({
apiresult:function(){
console.log("loading...");
}
});
});
我的服务器代码连接一个API并延迟结果,我的代码是
apiresult:function(){
var response = returnAllResult();//this gets the result from outside func. working good
return response;
}
我想从服务器端函数获取结果,我想在html文件中显示 如何接收和显示它。我的网页上没有任何内容。在我的控制台中,它正在打印结果。
答案 0 :(得分:0)
问题是当数据从服务器到达时,您的模板不会重新呈现。解决此问题的最简单方法是使用反应式数据源模式(查看here),因此在客户端代码中,您需要添加以下内容:
var apiResultDependency = new Deps.Dependency();
var abc;
你的助手可能是这样的:
displayResult: function() {
if (abc === undefined) {
Meteor.call('apiresult', function(e,result) {
abc = result; // make sure this is not undefined to prevent infinite loop
apiResultDependency.changed();
});
}
apiResultDependency.depend();
return abc;
}