如何引用以dust.js中的数字开头的字段?

时间:2014-03-28 07:17:37

标签: javascript dust.js

我有这样的JSON结构,想要在灰尘模板中引用64x64图像。由于64x64,这不起作用。

   "images": [
        {
            "dateLastUpdated": "2014-02-24T23:00:00Z",
            "links": {
                "1024x1024": "http://imghost/some.JPG",
                "147x147": "http://imghost/some.JPG",
                "358x358": "http://imghost/some.JPG",
                "498x498": "http://imghost/some.JPG",
                "64x64": "http://imghost/some.JPG",
                "726x726": "http://imghost/some.JPG"
            },
            "status": "OK"
        }
    ],

这是dust.js模板

{#users}
<tr>
  <td><img class="thumb" src="{.images[0].links['64x64']}"/></td>
  <td>{.title}</td>
</tr>
{/users}

我已经尝试了

{.images[0].links.64x64}
{.images[0].links['64x64']}
{.images[0].links.'64x64'}
{'.images[0].links.64x64'}

我该怎么做?

更新1

我找到了解决这个特定问题但不是一般问题的解决方法。如果我想在循环中引用不同的大小,我会再次遇到同样的问题。

{#users $size="64x64"}
<tr>
  <td><img class="thumb" src="{.images[0].links[$size]}"/></td>
  <td>{.title}</td>
</tr>
{/users}

更新2

应该在问题中提到dust.js模板:)

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

var data =  {"images": [
    {
        "dateLastUpdated": "2014-02-24T23:00:00Z",
        "links": {
            "1024x1024": "http://imghost/some.JPG",
            "147x147": "http://imghost/some.JPG",
            "358x358": "http://imghost/some.JPG",
            "498x498": "http://imghost/some.JPG",
            "64x64": "http://imghost/some.JPG",
            "726x726": "http://imghost/some.JPG"
        },
        "status": "OK"
    }
]};
console.log(data.images[0].links['64x64']);

答案 1 :(得分:0)

不幸的是,这是不可能的。 Dust语法不允许键以数字开头。如果您能够在呈现模板之前修改JSON,则可以使用_img为所有这些键添加前缀,然后在您的模板中使用{_1024x1024}{img1024x1024}灰尘模板。