【问题标题】:Simple for loop with JsRender使用 JsRender 的简单 for 循环
【发布时间】:2012-10-24 16:53:21
【问题描述】:

我正在使用 JsRender 渲染模板客户端。但是,我无法使用 for 循环标记来重复块的 html 部分,因为它似乎只接受数组或对象。相反,我的 JSON 返回一个数字变量(我应该重复该块的次数)。如何使用 JsRender 将 html 重复 N 次?

【问题讨论】:

  • 不要放-1然后离开,请发表评论,如果我的问题不清楚,我可以编辑它
  • 你试过数组中的整个html块吗?
  • “数组中的整个块”是什么意思?该块是一个简单的 html 部分,我应该重复 N 次。使用 PHP,它是一个简单的基于范围的 for 循环,但是我找不到使用 JsRender 的方法
  • 如果你有一个代码为<div>Something that I want to write</div>的块。然后,您可以将整个长“字符串”放入一个数组中。一个 html 代码块相当于 1 个数组。然后,重复数组。
  • 这行不通,因为我没有从响应中得到一个 HTML 块,而只是一个数字说明它必须重复多少次

标签: javascript jquery jsrender


【解决方案1】:

我扩展了@webdeveloper 的答案,因为不需要额外的循环,因为 javascript 数组的工作方式只需要定义最后一个元素

$.views.helpers({
    repeatLoop: function( count ) {
        if (!count) return [];
        var repeat = [];
        repeat[count-1] = {};
        return repeat;
    }
});

然后用 as

@{{for ~repeatLoop(10)}}
    {{:#index+1}}
@{{/for}}

【讨论】:

    【解决方案2】:

    我不确定 JsRender 是否提供此功能。您可以编写自己的标签,例如:Example Scenario: Creating custom helpers to iterate through fields

    $.views.helpers({
        getFields: function( count ) {
            var fieldsArray = [];
            for (var i=0; i < count; i++) {
                fieldsArray.push({});
            }
    
            return fieldsArray;
        }
    });
    

    演示:http://jsfiddle.net/6UeZC/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 2014-01-15
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多