在模板渲染之前调用助手
Calling helpers before template rendered
我正在构建一个流星项目,我需要让我的所有 collections 保持非反应性。所以我删除了订阅和发布。为了显示来自 DB 的任何信息,我的助手正在调用 meteor.call 中的方法。但就我而言,模板无法显示来自数据库的信息,因为模板是在从数据库返回任何内容之前呈现的。谁能建议一种在不使用 SESSION.
的情况下在模板中显示来自 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;
}
});
有没有人有解决这个问题的正确方法。
终于做到了。通过使用反应式 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');
}});
别忘了添加反应字典包。
流星添加反应字典
我正在构建一个流星项目,我需要让我的所有 collections 保持非反应性。所以我删除了订阅和发布。为了显示来自 DB 的任何信息,我的助手正在调用 meteor.call 中的方法。但就我而言,模板无法显示来自数据库的信息,因为模板是在从数据库返回任何内容之前呈现的。谁能建议一种在不使用 SESSION.
的情况下在模板中显示来自 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;
}
});
有没有人有解决这个问题的正确方法。
终于做到了。通过使用反应式 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');
}});
别忘了添加反应字典包。 流星添加反应字典