我在我的一个项目中使用Meteor,我只需要在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。服务器端调用方法之一,或者请举一个例子
任何帮助都会得到满足! 感谢
答案 0 :(得分:0)
您可以使用SSR Package进行服务器端渲染。
答案 1 :(得分: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)
}
})
})
我们将meteor方法的结果捕获到反应变量中,以便执行辅助函数,直到方法检索结果为止 现在制作助手以获得流星方法的结果
Template.someTemplate.helpers({
getSomeVar:function(){
if(Template.instance().someVar.get())
return Template.instance().someVar.get()
}
})