3

我的流星应用程序有一个 base.html 文件,如下所示:

<head>
  <title>MyApp</title>
</head>

<body>
    <template name="bodyContent">
        {{subContent}}
    </template>
</body>

接下来,我定义了三个不同的模板:

<template name="templateA">Some text</template>
<template name="templateB">Bla bla bla</template>
<template name="templateC">Your highscore is {{score}}</template>

我怎样才能使 {{subContent}} 能够在运行时在这三个模板之一之间交替?

就像是:

currentTemplateUsed = 'templateB'

Template.bodyContent.subContent = Template[currentTemplateUsed]

但这不起作用。是否有其他方法可以实现此功能?

4

2 回答 2

2

您应该使用流星路由器,它能够动态更改模板。可能的缺点是它一次只能更改一个模板。

或者,有一些关于 Meteor 的把手的信息: https ://github.com/meteor/meteor/wiki/Handlebars

基本上,您必须将模板用作函数,并将数据传递给它以便 Handlebars 解析它,如下所示:

var currentTemplateUsed = 'templateC';

var data = {
   score : 12
}

Template.bodyContent.subContent = Template[currentTemplateUsed](data);

退货Your highscore is 12

于 2012-11-28T20:05:49.967 回答
0

里面的模板<body> ... </body>似乎不起作用,我无法在里面传递数据。我可能错了,但我不得不把它放在外面并使用:

<body>
  {{> body_content}}
</body>
于 2012-12-18T02:50:38.770 回答