首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可能具有{^{if}的jsviews

可能具有{^{if}的jsviews
EN

Stack Overflow用户
提问于 2013-04-02 12:28:15
回答 1查看 237关注 0票数 0

在下面的示例中,如果我添加了几个来宾,然后删除1来宾,那么整个来宾表就会消失,即使Guest[]在非空状态下也不会重新出现。这里的{^{if}或我的代码有什么问题吗?(我使用的是commit 34)

代码语言:javascript
复制
<div id="frm-reg"></div>

<script id='jsr-registration' type='text/x-jsrender'>

    <p><button id="btn-addGuest">Add Guest</button></p>

    {^{if Guests.length}}
        <table>
            <tr>
                <th>First Name</th> 
                <th>Last Name</th>
                <th>Age</th>
                <th></th>
            </tr>
            {^{for Guests}}
                <tr>
                    <td><input data-link="FirstName" type="text" /></td>
                    <td><input data-link="LastName" type="text" /></td>
                    <td><input data-link="Age" type="text" /></td>
                    <td><button class="btn-remove">Remove</button></td>
                </tr>
            {{/for}}
        </table>
    {{/if}}
</script>

<script>
    var model={"CampID":3,"FirstName":"a","LastName":"b","Guests":[]};

    $.templates({regTmpl: "#jsr-registration"});
    $.link.regTmpl("#frm-reg", model)
        .on("click", ".btn-remove", function() 
        {
            $.observable(model.Guests).remove( $.view(this).index, 1 );
            return false;
        });

    $("#btn-addGuest").click(function()
    {
        $.observable(model.Guests).insert(model.Guests.length, {FirstName:"", LastName:"", Age:""});
        return false;
    });
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-02 23:20:26

这是标记中没有<tbody>标记的结果。

当您在<table>模板中使用JsRender标记(与JsViews数据绑定一起使用)时,您需要记住始终包括一个<tbody>标记。无论如何,浏览器都会插入一个,然后JsViews解析将得到不正确的元素深度信息。

为此,我将在JsViews解析器中添加警告错误消息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15764115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档