繁体   English   中英

我不能在blueimp / JavaScript-Templates中使用javascript“for in”语法

[英]I can't use javascript “for in” syntax in blueimp/JavaScript-Templates

我正在使用blueimp-tmpl编写一个javascript模板,当我使用下面的代码时,结果是正确的:

<script type="text/x-tmpl" id="tmpl-posts">
{% for (var i=0;i<o.content.length;i++) {
    var item=o.content[i];
%}
<tr>

    <td><a href="postDetail.html?id={%=item.id%}">{%=item.title%}</a></td>
    <td>{%=item.posterNickName%}</td>
    <td>{%=item.createTime%}</td>
    <td>{%=item.lastUpdateTime%}</td>
    <td>{%=item.replyCount%}</td>

    {% if(item.posterId==1&&!item.locked){ %}
        <td><a href="updatePost.html?id={%=item.id%}">修改</a></td>
        <td><a href="javascript:del('{%=item.id%}')">删除</a></td>
    {% }else{ %}
        <td></td>
        <td></td>
    {% } %}

</tr>
{% } %}
</script>

但是当我将for循环更改为“for in”时,结果为空,chrome-devtools报告错误,然后刷新页面,错误消失,结果仍为空。

<script type="text/x-tmpl" id="tmpl-posts">
{% for (var item in o.content){ %}
<tr>

    <td><a href="postDetail.html?id={%=item.id%}">{%=item.title%}</a></td>
    <td>{%=item.posterNickName%}</td>
    <td>{%=item.createTime%}</td>
    <td>{%=item.lastUpdateTime%}</td>
    <td>{%=item.replyCount%}</td>

    {% if(item.posterId==1&&!item.locked){ %}
        <td><a href="updatePost.html?id={%=item.id%}">修改</a></td>
        <td><a href="javascript:del('{%=item.id%}')">删除</a></td>
    {% }else{ %}
        <td></td>
        <td></td>
    {% } %}

</tr>
{% } %}
</script>

我不确定为什么,但你可以这样做。 修改此行:

{% for (var item in o.content){ %}

至:

{% for (var i=0, item; o.content[i]; i++){ %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM