2014-03-28 12 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

相關問題