Handlebars Helper函数不能正确返回多个类

时间:2014-03-17 17:52:00

标签: meteor return handlebars.js

我有一个把手辅助函数,它接受一个数值,需要将一组与该值相关的类返回到 div 块或我的html中的完整语句:

e.g。下面的代码段:

Handlebars.registerHelper('text', function(num) {

    switch(num.toString()){
        case "3": 
            return "three double dice";
            break;

帮助函数有效。轻微问题。当它将它附加到我的DOM中的 div 时,出于某种原因,只有第一个单词显示为我的class属性。即。

HTML(DOM): <div class="two" double dice>

或者如果我重新安排我的退货声明:

HTML(DOM): <div class="double" two dice>

我试图返回整个div行。即。

return '<div class="two double dice">'

以及在我的辅助函数中声明变量:

return "<div class="+ numClass + doubleClass + diceClass + ">"

甚至作为把手safeString:

return new Handlebars.SafeString("<div class="+ numClass + doubleClass + diceClass + ">");

请有人告诉我使用把手辅助函数返回多个类的正确方法是什么?赞赏。

更新(18/03/14):

包含模板。因此,根据您使用的上述辅助函数的版本,它可以是。

<template name="threeDice">
    <div class={{text Roll.dice1}}>
        *Content*
    </div>
</template>

<template name="threeDice">
    {{text Roll.dice1}}
        *Content*
    </div>
</template>

甚至:

<template name="threeDice">
    <div class= {{text Roll.dice1}} "double dice">
        *Content*
    </div>
</template>

如果我改变辅助函数只返回&#34;数字&#34;字符串。

1 个答案:

答案 0 :(得分:1)

您的帮助程序代码似乎是正确的,因此很可能错误在于您如何调用它。对于助手

Handlebars.registerHelper('classes', function(num) {
  if(num.toString() === '3') return 'three double dice';
});

正确的电话应该是

<div class="{{classes 3}}">