【问题标题】:How to render data coming from Server side (DB call) Meteor method to template Meteor如何将来自服务器端(数据库调用)Meteor 方法的数据渲染到模板 Meteor
【发布时间】:2016-10-22 20:21:09
【问题描述】:

我在我的一个项目中使用 Meteor,我需要简单地在流星模板上显示数据,比如 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;
}
})

所以我只想渲染来自 Meteor 之一的数据。从客户端调用的服务器端方法或请给出任何示例

如有任何帮助,我们将不胜感激! 谢谢

【问题讨论】:

    标签: node.js templates meteor meteor-blaze


    【解决方案1】:

    您可以使用SSR Package 进行服务器端渲染。

    【讨论】:

      【解决方案2】:
      Template.someTemplate.onCreated(function(){
       this.someVar = new ReactiveVar(null)
       let self = this
       Meteor.call('someMethod',function(err,res){
        if(!err){
         self.someVar.set(res)
        }  
       })
      })
      

      我们将meteor方法的结果捕获到反应变量中,以便执行辅助函数,直到方法检索到结果
      现在制作助手来获取流星方法的结果

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

      【讨论】:

        猜你喜欢
        • 2018-01-16
        • 2013-02-11
        • 2014-10-10
        • 1970-01-01
        • 1970-01-01
        • 2014-07-13
        • 2013-06-05
        • 2019-06-03
        • 1970-01-01
        相关资源
        最近更新 更多