2016-06-21 82 views
0

我在我的项目之一,我需要简单地显示流星模板上的数据说inventory.html使用流星。我在服务器端有一个方法,它可以查询并从mongoDb获取数据。我从客户端调用服务器端方法,并获取客户端的所有数据,但随着数据传到客户端需要一段时间模板呈现没有任何值的平均时间,所以我将如何显示值模板或有任何技术,以便我可以显示我的价值观或数据。如何渲染数据来自服务器端(数据库调用)流星方法模板流星

目前我正在使用服务来设置和获取数据,即testService。

var testservice = require('./TestService'); 

Template.allInventory.rendered = function() { 


Template.allInventory.helpers({ 
productDetails: function() { 

    return testservice.getData(); 
} 
}) 
} 

channels.js我在哪里设置从DB

var testservice = require('./TestService'); 
Template.channels.rendered = function(){ 

    Meteor.call('getDetialsFromDB',function(err, res){ 
    if(res){ 
     console.log("res is...getAllProductDetail.."+res); 
     testservice.setData(res); 
    } 
    if(err){ 
     console.log("Error while calling getAllProductDetail"); 
    } 
}) 

未来如果我叫上面的方法,而无需使用比其服务呈现模板,没有任何数据,因为数据从后端取来的数据有一段时间,如:

Template.allInventory.rendered = function() { 
Template.allInventory.helpers({ 
productDetails: function() { 
var data; 
Meteor.call('getDetialsFromDB',function(err, res){ 
    if(res){ 
     console.log("res is...getAllProductDetail.."+res); 
     data = res; 
    } 
    if(err){ 
     console.log("Error while calling getAllProductDetail"); 
    } 
}) 
    return res; 
} 
}) 

,所以我只是想使我的数据从服务器端的流星。方法之一来从客户端调用或请给任何例如

任何帮助将appriciated! 谢谢

回答

0
Template.someTemplate.onCreated(function(){ 
this.someVar = new ReactiveVar(null) 
let self = this 
Meteor.call('someMethod',function(err,res){ 
    if(!err){ 
    self.someVar.set(res) 
    } 
}) 
}) 

我们捕捉流星方法的结果带入反应的变量,以执行辅助功能,直到方法检索结果
现在做佣工得到流星方法的结果

Template.someTemplate.helpers({ 
getSomeVar:function(){ 
    if(Template.instance().someVar.get()) 
    return Template.instance().someVar.get() 
    } 
})