我想在流星模板上使用条件,如: 例如,我有一个字段,名称是类型,类型可以得到两个值1和2
我尝试如下,但它不起作用。
{{#if type 1}}
<td tableHeadData='day'> {{day}}</td>
{{else type 2}}
<td tableHeadData='month'> {{month}}</td>
{{/if}}
答案 0 :(得分:1)
您可以为equals
辅助工具制作可重复使用
Template.registerHelper('equals', function (a, b) {
return a == b; // maybe triple equals of types need to match
});
然后在这样的模板中使用:
{{#if equals value1 value2}}
Your values are equal
{{/if}}
答案 1 :(得分:1)
meteor中有一个名为raix:handlebar-helpers
的包有一些简单的助手。
因此,如果你想使用相等的话,你只需要写{{#if $eq a b}}
。
{{#if $eq type 1}}
<td tableHeadData='day'> {{day}}</td>
{{else}}
{{#if $eq type 2}}
<td tableHeadData='month'> {{month}}</td>
{{/if}}
{{/if}}
您也可以在本地和全球范围内编写助手。
对于本地,您已在相应的js文件助手中写入。
Template.myTemplate.helpers({
isEqual : function (value1, value2){
return value1 === value2;
}
})
对于全局,您必须使用Template.registerHelper注册帮助程序。
Template.registerHelper('isEqual', function (value1, value2) {
return value1 === value2;
});
在这两种类型的助手中,你的html代码都会像
{{#if isEqual type 1}}
<td tableHeadData='day'> {{day}}</td>
{{else}}
{{#if isEqual type 2}}
<td tableHeadData='month'> {{month}}</td>
{{/if}}
{{/if}}
@note:流星空格键现在不支持任何其他条件。
答案 2 :(得分:0)
答案是你不能。 if
的参数必须是一个返回布尔值的模板助手函数。所以你必须编写一个辅助函数来进行测试。
Template.xxx.helpers({
typeIs1() { return this.type === 1 }
typeIs2() { return this.type === 2 }
})