2014-03-28 14 views
0

我有一个这样的JSON结构,并希望在防尘模板中引用64x64图像。由于64x64,这不起作用。如何引用以dust.js中的数字开头的字段?

"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模板:)

回答

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']); 
+0

是的,这有效,但我正在寻找具体的尘埃可变扩展。 :) – magiconair

+0

我对灰尘什么都没有,你问的只是简单的javascript和json。所以我解释了它。 –

+0

啊,我忘了提问题中的灰尘模板。咄。将更新此。 thx – magiconair

0

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

+0

而且没有办法通过数组语法来引用密钥,例如,链接['64' ]? – magiconair

相关问题