Meteor.js 使用助手的值作为模板

Meteor.js using value of a helper as template

我想根据辅助值呈现不同的模板。我将尝试编写和示例。

...
{{#with myHelper}}
 {{> this }}
{{/with}}
...

使用助手定义如下:

...
myHelper : function(){
  return MyCollection.findOne({ userId: Meteor.userId() }).personalizeTemplate; 
}
...

不幸的是,这种方式行不通。有什么解决办法吗?

你需要使用 dynamic template 你甚至不需要 {{#with}}

{{> Template.dynamic template=myHelper }}

要动态使用模板,您必须使用全局 Template.dynamic :

{{> Template.dynamic template="my template"}}

{{> Template.dynamic template=myHelper}}

请注意 myHelper 必须 return 一个作为模板名称的字符串。
您还可以使用 data 提供数据上下文:

{{> Template.dynamic template=myTemplate data=someData}}

Discover Meteor 写了一篇关于它的文章。它创建于 2014 年,整篇文章中使用的 UI 命名空间已重命名为 Template.