我正在建立一个流星项目,我需要保持我的所有收藏品不被反应。所以我删除了订阅和发布。为了显示来自DB的任何信息,我的助手正在调用meteor.call中的方法。但在我的情况下,模板无法显示来自DB的信息,因为模板在从DB返回任何内容之前呈现。任何人都可以建议一种在不使用会话的情况下在模板中显示来自Meteor.call方法的信息的好方法。
这是我的代码。 我的模板代码
<template name = "showEmployeeFromRouter">
{{#each allEmployee}}
<div>
Name: {{name}}
<br>
Org: {{org}}
</div>
<br><br>
{{/each}}
</template>
帮助程序代码
Template.showEmployeeFromRouter.helpers({
allEmployee:function(){
//return [{name:"AX",org:"XS"},{name:"XS",org:"SE"}];
Meteor.call('showAllEmployees',function(err,res){
if(res){
console.log(res);
return res;
}
});
}
})
服务器中的代码
Meteor.method({
showAllEmployees:function(){
var obj = Employees.find().fetch();
return obj;
}
});
是否有人有正确的方法来解决这个问题。
答案 0 :(得分:0)
终于做到了。通过使用反应性var或反应性Dict。 我的模板。
<template name = "`showEmployeeFromRouter`">
{{#each allEmployee}}
<div>
Name: {{name}}
<br>
Org: {{org}}
</div>
<br><br>
{{/each}}
我的服务器电话。
Meteor.method({
showAllEmployees:function(){
var obj = Employees.find().fetch();
return obj;
}
});
最后是我的帮手。
Template.showEmployeeFromRouter.created = function(){
this.state = new ReactiveDict();
var parentInstance = Template.instance();
Meteor.call('showAllEmployees',function(err,res){
if(res)
parentInstance.state.set('allEmp',res);
})}
Template.showEmployeeFromRouter.helpers({
allEmployee:function(){
return Template.instance().state.get('allEmp');
}});
别忘了添加反应词典包。 meteor add reactive-dict