如何使用mustache js模板引擎访问嵌套对象

pta*_*mzz 17 javascript json mustache icanhaz.js

我有这个json回归

{
    "timeline": [{
        "id": "2",
        "self": {
            "uid": "2",
            "username": "ptamzz"
        },
        "file": {
            "fid": "43",
            "file_name": "First Name"
        },
        "connection": {
            "fid": "4",
            "username": "tom"
        },
        "action": "viewed your document",
        "time": "2012-01-16 12:23:03",
        "tags": ["Engineering", "Computer Science", "Java", "Java Library"]
    }, {
        "id": "1",
        "self": {
            "uid": "2",
            "username": "ptamzz"
        },
        "file": {
            "fid": "41",
            "file_name": "Write Up"
        },
        "connection": {
            "fid": "4",
            "username": "tom"
        },
        "action": "favorited your document",
        "time": "2012-01-16 12:22:04",
        "tags": ["Design"]
    }]
}
Run Code Online (Sandbox Code Playgroud)

根据http://coenraets.org/blog/2011/12/tutorial-html-templates-with-mustache-js/(示例6:嵌套对象部分)中的教程,您可以访问dot notation以访问嵌套对象.

从上面的JSON,我想要检索的数据等self.username,file.file_name等等等等.

现在,我的模板是

{{#timeline}}
    <li>
        {{self.username}}
    </li>
{{/timeline}}
Run Code Online (Sandbox Code Playgroud)

但是self.username不起作用.

如何检索这些嵌套值?

pta*_*mzz 19

我不认为这是正确的方法,但由于我在这里找不到任何答案,我自己想出了一些东西.至少这是有效的.

{{#timeline}}
    <li>
        {{#self}}{{username}}{{/self}}
    </li>
{{/timeline}}
Run Code Online (Sandbox Code Playgroud)

  • 点符号确实有效。在你的特殊情况下一定有错误。也许是因为“self.username”在一个数组中并且可以出现多次。 (3认同)

d1v*_*val 5

点表示法不适用于 0.4x 及以下版本。它适用于“0.7.2”。