【发布时间】:2015-08-05 10:59:41
【问题描述】:
我有一个被多次调用的流星模板助手。助手有会话变量,我猜助手是在每个会话对象更改时执行的。
这是我的助手:
Template.profile.helpers({
listOfUsers: function (param1,param2,param3) {
if(*if param 1/2/3 are not passed as parameters*)
{
var param1 = Session.get('param1');
var param2 = Session.get('param2');
var param3 = Session.get('param3');
}
/*This is the api call to get the data.
Meteor.call('apiMethpod', param1, param2, param3, function (error, result) {
if (error) {
console.log("Error occurred on receiving checks data on server. ", error);
Session.set('apiData', "");
} else {
console.log("Checks data received on client side ");
Session.set('apiData', result);
}
});
return Session.get('apiData');
}
});
这个助手也被一个事件调用:
Template.checkImages.events({
'click .search': function(event){
/*Getting the values for params
var param1 = Session.get('param1');
var param2 = Session.get('param2');
var param3 = "Some value not from session object";
Template.profile.__helpers.get("listOfUsers")(param1,param2,param3);
}
});
当事件被触发时,参数被传递给助手,我第一次得到了预期的 api 响应。但是助手被多次执行,现在因为它看不到参数,所以它从会话对象中获取值。
我以某种方式希望助手在从事件中调用它时只执行一次。
【问题讨论】:
标签: meteor