2012-08-09 81 views
7

可能重複:
Mustache JS Template with JSON CollectionMustache.js:遍歷通過JSON收到清單

我有這樣的,我想用Mustache.js使用的JSON響應:

[ 
    {"id": "1", "details": {"name": "X", "type":"Y" }}, 
    {"id": "2", "details": {"name": "aName", "type":"something" }} 
] 

我如何遍歷這個使用mustache.js?

+0

我不明白它是如何重複的。鏈接問題的標題不是描述性的,也沒有可接受的答案。 – Stealth 2012-08-11 13:28:12

+0

有趣的是,後這是引用這個問題:「一個重複的」。 – Carcigenicate 2015-12-23 17:14:04

回答

12

我發現了另一種做法這是非常類似於Geert-Jan,除非你不必將數組分配給一個Javascript對象。

{{ #. }} 
    <p> {{ id }} </p> 
    <ul> {{#details}} 
     {{name }} 
     {{ type }} 
    {{/details}} 
    </ul> 
{{ /. }} 
+0

的確如此。也不知道頂點對象上的點也是如此。 – 2012-08-10 21:03:20

+0

我似乎無法得到這個用我能哈茲工作。有什麼我失蹤? – streetlight 2013-02-13 14:13:01

+0

我似乎無法得到這個工作(我用我能HAZ)。有什麼我失蹤,因爲這將是太棒了! – streetlight 2013-02-13 14:23:35

14

數組本身應該是一個更大的對象的值,像這樣:

var obj = { 
    arr: [ 
    {"id": "1", "details": {"name": "X", "type":"Y" }}, 
    {"id": "2", "details": {"name": "aName", "type":"something" }} 
    ] 
} 

然後,你可以這樣做:

{{#arr}} 
    my id: {{id}} 
{{/arr}} 

使用的{{#bla}}實際上是超載。當它所作用的屬性是一個數組時,它將循環。當屬性本身是一個對象時,它將「進入」該對象。給你的例子:

{{#arr}} 
    my id: {{id}} <br/> 
    {{#details}} 
    and my name: {{name}} 
    {{/details}} 
{{/arr}} 
+2

感謝您的回答。我還發現了另一種做法,您可能會發現它更容易。請看下面。 – Stealth 2012-08-10 20:50:23

+0

@吉爾特 - 揚感謝它幫了我。我不得不這樣做:'$('。some #selector')。append(Mustache.render(someTemplateTpl,{arrayOfObjects:classObject.arrayOfJsons}));' 所以在_classObject_類中名爲_arrayOfJsons_的對象的數組必須被分配爲對象內的_arrayOfObjects_屬性的值。 但之前,當我使用下面的代碼:'$('。some #selector')。append(Mustache.render(someTemplateTpl,classObject.arrayOfJsons));' 它沒有工作,模板已經部分渲染 - 只有靜態的HTML部分,但基於JSON的屬性動態的(即如果其他類似語句)則沒有。爲什麼? – spaffy 2016-01-14 14:21:42