2012-08-09 12 views
7

Olası Çoğalt: Ben Mustache.js ile kullanmak istediğiniz böyle bir json yanıtı var
Mustache JS Template with JSON CollectionMustache.js: json yoluyla alınan bir liste üzerinde yineleme

:

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

Mustache.js'yi kullanarak bunun üzerinde nasıl yineliyorum?

dizinin kendisine daha büyük bir Nesne bir değer olması şöyle olmalıdır
+0

Nasıl bir kopya olduğunu göremiyorum. Bağlantılı sorunun başlığı ne açıklayıcıdır ne de kabul edilmiş bir cevap yoktur. – Stealth

+0

Komik olan şey, bunun bu sorunun "bir kopyası" olduğu yönündedir. – Carcigenicate

cevap

12

Sana bir JavaScript nesnesine dizi atamak zorunda kalmamasıdır haricinde Geert-Jan oldukça benzer olan bunu yapmanın başka bir yolunu buldular.

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

evet. Noktanın üst düzey bir nesne üzerinde çalıştığını bilmiyordu. –

+0

I Can Haz kullanarak çalışmayı başaramıyorum. Kaybettiğim bir şey mi var? – streetlight

+0

Bunu işe yaramış gibi görünmüyor (I Can Haz kullanıyorum). Kaybettiğim bir şey var, çünkü bu harika olurdu! – streetlight

14

: Sonra

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

Yapabileceğiniz:

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

{{#bla}} aslında aşırı yüklü için kullanılması . Yaptığı özellik bir dizi olduğunda, döngü olacaktır. Özellik bir nesnenin kendisi olduğunda, o nesneyi 'girer'. senin örneğe göre:

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

Cevabınız için teşekkür ederiz. Ayrıca, daha kolay bulabileceğiniz başka bir yol buldum. Lütfen aşağıya bakın. – Stealth

+0

@ Geert-Jan bana yardımcı oldu. Bunu yapmak zorundaydım: '$ ('. Bazı #selektör'). Eklemek (Mustache.render (someTemplateTpl, {arrayOfObjects: classObject.arrayOfJsons})); _classObject_ sınıfının _arrayOfJsons_ adlı bir dizi nesnesi vardı; nesnedeki _arrayOfObjects_ özelliğinin bir değeri olarak atanmalıdır. Ama daha önce, bu kodu kullandım: '$ ('. Bazı #selector'). Eklemek (Mustache.render (someTemplateTpl, classObject.arrayOfJsons));' işe yaramadı, şablon kısmen işlendi - Sadece statik html parçaları, ancak Json'un özelliklerine (yani, if-else gibi ifadeler) dayanan dinamik olanlar değildi. Niye ya? – spaffy

İlgili konular