好的,我知道这是超级基础的,但我已经盯着它看了2天,看不出它为什么不起作用。我使用Handlebars IF帮助器有条件地渲染模板。
这是HTML:
<head>
<title>flash</title>
</head>
<body>
{{#if isTrue}}
{{> hello}}
{{else}}
{{> goodbye}}
{{/if}}
</body>
<template name="hello">
<h1>Hello!</h1>
</template>
<template name="goodbye">
<h1>Goodbye!</h1>
</template>
以下是简单的咖啡文件:
isTrue = true
我希望{{&gt; hello}}模板来渲染,但没有运气。我刚刚得到{{&gt;再见}}模板。这是奇怪的,因为我有其他项目,我已成功完成此任务。我必须在这里遗漏一些明显的东西。
答案 0 :(得分:20)
isTrue
变量需要位于模板中才能生效。因此,将正文内容放在模板中:
<body>
{{> body}}
</body>
<template name="body">
{{#if isTrue}}
{{> hello}}
{{else}}
{{> goodbye}}
{{/if}}
</template>
然后你可以像这样定义isTrue
:
Template.body.helpers
isTrue: -> true
答案 1 :(得分:5)
注意:
Template.body.isTrue = -> true
现已弃用。
新语法如下所示:
Template.test.helpers({
'isTrue': function(){
return true;
}
});
它应该仍然可以工作,但如果你打开你的控制台,它会给你一个关于语法的警告。
答案 2 :(得分:1)
使用Meteor 1.2.0.2你可以这样做
<doc>
<billing-firstname>N. M.</billing-firstname>
<billing-firstname>T.</billing-firstname>
</doc>