meteorjs车把定制条件

时间:2014-03-02 16:51:05

标签: javascript templates meteor handlebars.js

如何创建简单的条件手柄?

我想要做的是从集合中获取mood =='+',将卷呈现为白色,否则渲染其他颜色。

这是HTML:

{{#if moodIsPlus}}
     <tr>
        <td>
            <strong>{{mood}} <i class="icon-hand-up" value="+"></i></strong> {{message}}<br>
         </td>
    </tr>
    {{else}}
    <tr class="info">
        <td>
            <strong>{{mood}} </strong> {{message}}<br>
         </td>
    </tr>
    {{/if }}

在JS中定义了moodIsPlus:

Template.messages.moodIsPlus = function() {
  return Messages.find({mood:'+'});
}

它会返回所有内容。

顺便说一句,车把和车把.js是一回事吗?我在哪里可以获得更多关于meteorjs车把的参考资料?

2 个答案:

答案 0 :(得分:1)

查看Meteor Smart Package Handlebar-helpers,因为它附带了许多类似的帮助程序。

以下是如何通过它实现您的目标:

<tr>
    <td>
        <strong>{{#if $eq mood '+'}}<i class="icon-hand-up" value="+"></i>{{/if}}</strong> {{message}}<br>
    </td>
</tr>

答案 1 :(得分:1)

您可以使用空格键或手柄(旧)功能来完成此操作。

首先是获取所有消息。您可以将它放在模板助手中,如下所示:

Messages.helpers({
 messages: function(){
   return Messages.find({});
 },
 moodIsPlus: function(mood){
   return (mood === "+") ? true : false; // return true if mood === "+"
 }
});

然后,在你的模板中。

 {{#if moodIsPlus mood}} mood is from your Messages collection. that contains "+" or whatever.
   <tr>
    <td>
        <strong>{{mood}} <i class="icon-hand-up" value="+"></i></strong> {{message}}<br>
     </td>
</tr>
{{else}}
<tr class="info">
    <td>
        <strong>{{mood}} </strong> {{message}}<br>
     </td>
</tr>
{{/if }}

希望得到这个帮助。