2013-02-14 19 views
1

一個JSONP調用我回到後:通過迭代對象Array使用Dustjs

[ 
    { 
     "text": "yo whats up?", 
     "id": 1 
    }, 
    { 
     "text": "hey man!", 
     "id": 2 
    }, 
    { 
     "text": "dude.", 
     "id": 3 
    } 
] 

繼承人的實際API調用:
http://api.twitter.com/1/statuses/user_timeline/codinghorror.json

使用Dust.js我會做這樣的事情:

<ul> 
{#myPosts} 
    <li>{text}, {id}{~n}</li> 
{:else} 
    <p>Humm...</p> 
{/myPosts} 
</ul> 

但是在響應中沒有鍵「myPosts」。那就是問題所在。簽出API調用也看到如何返回JSON,mabye我解釋這個錯誤。

我將在Dust.js中使用什麼語法來遍歷此數組中的每個對象?

回答

5

您可以使用「當前上下文」快捷方式。

{#.} 
    {text} - {id}<br /> 
{/.} 
+0

+1作品完美,請參閱[JSFiddle](http://jsfiddle.net/rYMQL/1/) – 2013-02-17 22:12:21

+1

我在dustjs周圍搜索,但找不到任何關於'#.'的內容。這在哪裏記錄? – 2013-02-17 22:23:25

1

dustjs {guide},我會說,你的例子應該已經遍歷數組。你只需要它作爲

{ 
    myPosts: [ 
     { 
      "text": "yo whats up?", 
      "id": 1 
     }, 
     { 
      "text": "hey man!", 
      "id": 2 
     }, 
     { 
      "text": "dude.", 
      "id": 3 
     } 
    ] 
} 

Dust Tutorial - Dust under the covers,我已經建立了這個JSFiddle。忽略樣板,把它歸結爲自己的前綴接收JSONP陣列myPosts並傳遞到dustjs

var jsonp = [...]; 
dust.render('template', { myPosts: jsonp }, function (err, out) { 
... 
}); 

要在你的模板訪問任何東西,你必須命名它。沒有其他辦法,AFAICS。

+0

是的,但沒有關鍵的「myPosts」。那就是問題所在。簽出API調用也看到如何返回JSON,mabye我解釋這個錯誤。 – 2013-02-14 16:36:40

+0

@DanKanze我仍在尋找解決方案。 Downvoting並沒有加快速度。再見。 – 2013-02-14 16:48:37

+0

@DanKanze請看更新後的答案和JSFiddle。 – 2013-02-14 17:26:14