【问题标题】:dot.js loop through objectdot.js 循环遍历对象
【发布时间】:2016-05-27 05:04:35
【问题描述】:

使用 dot.js 模板引擎如何循环访问对象?在下面的示例数据中,您如何循环访问“msg”对象?

{
    "msg": {
        "1": {
            "a": "a1"
        },
        "2": {
            "b": "b2"
        }
    }
}

【问题讨论】:

    标签: javascript dot.js


    【解决方案1】:

    the website 的示例看来,您应该能够做到:

    {{ for(var prop in it) { }}
    <div>{{=prop}}</div> <!-- Prints "msg" -->
        {{ for(var msgProp in it[prop]) { }}
        <div>{{=msgProp}}</div> <!-- Prints "1" and "2" -->
            {{ for(var numProp in it[prop][msgProp]) { }}
            <!-- Prints "a: a1" and "b: b1" -->
            <div>{{=prop}}: {{=it[prop][msgProp][numProp]}}</div>
            {{ } }}
        {{ } }}
    {{ } }}
    

    但是,您可能希望先使用 Javascript 稍微简化该对象,然后再将其传递给模板以使其更易于迭代。

    【讨论】:

    • 我发现改用 Object.keys 的可读性更高一些(尽管我猜想与旧浏览器的互操作性较差)。减少所有奇怪的括号嵌套。所以像{{~Object.keys(it) :firstGroup}}... {{~}}
    【解决方案2】:

    最好的办法是首先将msg 转换为一个数组。以这种方式进行迭代要容易得多。之后,只需使用 jQuery 的$.each()

    【讨论】:

      猜你喜欢
      • 2020-06-09
      • 1970-01-01
      • 2020-04-30
      • 2017-06-12
      • 2015-10-31
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多