gpt4 book ai didi

Meteor 将 Reactive Var 定义为可在 .events 和 .helpers 中访问

转载 作者:行者123 更新时间:2023-12-01 10:44:49 25 4
gpt4 key购买 nike

我正在尝试定义一个新的 ReactiveVar 变量,以便在所有模板部分(例如 .events、.helpers、.rendered ...等)中访问,如下面的代码所示,但我总是收到错误消息:

Error: Exception in template helper:
ReferenceError: logData is not defined

有人可以告诉我我在这里缺少什么/做错了什么吗?谢谢

代码:

  Template.detailedreport.rendered = function() {

var logData = new ReactiveVar;
logData.set([]);
};


Template.detailedreport.helpers({
myCollection: function () {
return logData.get();
}
});

Template.detailedreport.events({
'submit form': function(e) {
e.preventDefault();
var now = Session.get("startDate");
var then = Session.get("endDate");
var custID = Session.get("customer");
var projID = Session.get("project");
Meteor.call('logSummary', now, then, projID, custID, function(error, data){
if(error)
return alert(error.reason);

logData.set(data);
});
}
});

最佳答案

您需要像这样在模板实例上定义 ReactiveVar :

Template.detailedreport.created = function() {
this.logData = new ReactiveVar([]);
};

然后你就可以像这样在助手中访问它了:

Template.detailedreport.helpers({
myCollection: function () {
return Template.instance().logData.get();
}
});

在事件中你可以使用模板参数:

Template.detailedreport.events({
'submit form': function(e, template) {
e.preventDefault();
var now = Session.get("startDate");
var then = Session.get("endDate");
var custID = Session.get("customer");
var projID = Session.get("project");
Meteor.call('logSummary', now, then, projID, custID, function(error, data){
if(error){
return alert(error.reason);
}
template.logData.set(data);
});
}
});

关于Meteor 将 Reactive Var 定义为可在 .events 和 .helpers 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27611696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com