直接从空格键访问模板实例对象属性

Access template instance object properties directly from Spacebars

本文关键字:实例 对象 属性 访问 空格键      更新时间:2023-09-26

正如Meteor文档所述,

模板实例对象表示一个模板在文档中出现。它可以用来访问DOM,并且可以为它分配属性,这些属性会随着模板的响应性更新而持续存在。[…你可以为对象指定你选择的附加属性。

如何从空格键模板访问这些属性?

必须定义除了

之外什么都不做的帮助程序是很麻烦的。
return Template.instance().myProperty

就像@apendua在评论中说的,你可以使用全局帮助器,这对我有用:

Template.mainPage.onCreated(function(){
  this.test = new ReactiveVar('stackoverflow');
});
Template.registerHelper('instance', function(context, options) {
  return Template.instance()[context].get();
});

和HTML中的

{{instance 'test'}}

你也可以用Template.currentData()

编辑

根据本文,您可以在HTML中执行以下操作:
{{Template.instance.test.get}}

所以不需要全局帮助器,它可以从空格键访问,所以不需要帮助器

OP希望直接访问数据,而不需要任何帮助。您需要将数据存储在Template.currentData()Template.parentData(n)中。其中的任何内容都可以分别作为{{myData}}{{../myParentData}}访问。

我认为您可以使用{{#与}}{{和}}

例如

{{#with getObject}}
<h1>{{prop1}}</h1>
<h2>{{prop2}}</h2>
{{/with}}

and in helper

getObject:function(){
return {prop1:'some text prop1',prop2:'some text prop2'}
}