Templates 如何获取模板对象数据以在Meteor模板中持久化?

Templates 如何获取模板对象数据以在Meteor模板中持久化?,templates,meteor,Templates,Meteor,我希望在使用模板事件处理程序函数时能够设置/获取模板对象的数据。我尝试在呈现模板时设置一个变量,并希望稍后可以访问该变量,在这种情况下,当用户单击模板中的某个元素时,该变量不起作用: <template name="fooBar"> <div class="some_element">CLICK ME</div> </template> Template.fooBar.rendered = function(){ this.tem

我希望在使用模板事件处理程序函数时能够设置/获取模板对象的数据。我尝试在呈现模板时设置一个变量,并希望稍后可以访问该变量,在这种情况下,当用户单击模板中的某个元素时,该变量不起作用:

<template name="fooBar">
    <div class="some_element">CLICK ME</div>
</template>

Template.fooBar.rendered = function(){
    this.templateVar = "Hello";
}

Template.fooBar.events({
    'click .some_element': function(e,t){
        alert(this.templateVar); // Should say 'Hello', but is 'undefined'.
    }
});

点击我
Template.fooBar.rendered=函数(){
this.templateVar=“Hello”;
}
Template.fooBar.events({
“click.some_元素”:函数(e,t){
警报(this.templateVar);//应该说“Hello”,但为“未定义”。
}
});

使用反应式dict包,您可以这样做

首先添加它

meteor add reactive-dict
第二步创建模板。(注意im使用meteor 1.1版本)


根据Sindis的建议,这是解决问题的最快方法:

而不是

alert(this.templateVar); 
。。。只要做


警报(this.templateVar)
警报(Template.instance().templateVar)

您能够使用会话吗?t.templateVar或Template.instance()。templateVarTemplate.instance在渲染和事件处理程序上获得了一个
alert(this.templateVar);