Handlebars,Jquery,PHP和MySql中的条件

时间:2013-02-04 01:37:46

标签: handlebars.js

我有一些带有Handlebars模板的HTML / table数据:

<div class="users">
    <script id="userlist" type="text/x-handlebars-template"> 
        <table class="table table-striped table-hover table-condensed">
            <thead>
                <th>Username</th> 
                <th>Real Name</th> 
                <th>Email</th> 
            </thead>
            <tbody>
                {{#each this}}     
                <tr>
                    <td>{{name}}</td>
                    <td>{{email}} {{lastName}}</td> 
                    <td>{{time}}</td> 
                </tr> 
                {{/each}} 
            </tbody> 
        </table> 
    </script> 
</div>

我想找到最优雅/优化的方式来有条件地识别表行,以便根据我从JSON获得的值突出显示该行。

这段代码从我的PHP类中获取JSON:

$("#register").submit(function(event) {

    /* stop form from submitting normally */
    event.preventDefault();

    /* get some values from elements on the page: */
    var $form = $( this ),
        name = $form.find( 'input[name="name"]' ).val(),
        email = $form.find( 'input[name="email"]' ).val(), 
        func  

    /* Send the data using post */
    var posting = $.post( 'controller.php', { name: name, email: email, func: 'register'  } );

    /* Put the results into a template */
    posting.done(function(data) {
        var data = $.parseJSON(data);
        var userlist = Handlebars.compile( $("#userlist").html() );
        $(".users").html(userlist(data));
    }); /*end function */

});

我能够看到我的数据列表没问题。这很好用。我觉得我需要做一个registerHelper或者一个registerPartial但不确定。

1 个答案:

答案 0 :(得分:0)

如果您有一个布尔属性,比如说active,请设置指示活动行的对象,然后您只需在模板中执行以下操作:

{{#each this}}
<tr{{#if active}} class="active"{{/if}}>
    <td>{{name}}</td>
    <td>{{email}} {{lastName}}</td> 
    <td>{{time}}</td> 
</tr> 
{{/each}}