dot.js循环遍历对象

use*_*423 5 javascript dot.js

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

{
    "msg": {
        "1": {
            "a": "a1"
        },
        "2": {
            "b": "b2"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*gue 7

网站上的示例来看,您看起来应该能够做到:

{{ 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>
        {{ } }}
    {{ } }}
{{ } }}
Run Code Online (Sandbox Code Playgroud)

但是,您可能希望先将该对象简化为Javascript,然后再将其传递给模板,以便更容易迭代.

  • 我发现它稍微更具可读性(虽然我认为与较旧的浏览器的互操作性较低)而是使用Object.keys.切断所有奇怪的括号嵌套.所以像`{{~Object.keys(it):firstGroup}} ... {{〜}}` (2认同)