ppe*_*zzi 8 handlebars.js meteor
好吧,我知道这是超级基础的,但我已经盯着它看了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>
Run Code Online (Sandbox Code Playgroud)
这是简单的咖啡文件:
isTrue = true
Run Code Online (Sandbox Code Playgroud)
我希望{{> hello}}模板可以渲染,但没有运气.我刚收到{{> goodbye}}模板.这是奇怪的,因为我有其他项目,我已成功完成此任务.我必须在这里遗漏一些明显的东西.
Sjo*_*her 20
该isTrue变量必须在模板中为它工作.因此,将正文内容放在模板中:
<body>
{{> body}}
</body>
<template name="body">
{{#if isTrue}}
{{> hello}}
{{else}}
{{> goodbye}}
{{/if}}
</template>
Run Code Online (Sandbox Code Playgroud)
然后你可以这样定义isTrue:
Template.body.helpers
isTrue: -> true
Run Code Online (Sandbox Code Playgroud)
小智 5
注意:
Template.body.isTrue = -> true
Run Code Online (Sandbox Code Playgroud)
现已弃用.
新语法如下所示:
Template.test.helpers({
'isTrue': function(){
return true;
}
});Run Code Online (Sandbox Code Playgroud)
它仍然可以工作但是如果你打开你的控制台,它会给你一个关于语法的警告.