2012-01-22 171 views
6

我在這裏使用此數據:http://pastie.org/3231052 - 如何使用Mustache或Handlebars顯示鍵而不是值?Mustache.js - 顯示鍵值而不是值

[{"interval":"2012-01-21", 
    "advertiser":"Advertisers 1", 
    "offer":"Life Insurance", 
    "cost_type":"CPA", 
    "revenue_type":"CPA", 
    ... etc ... 
}] 
+0

你的意思是要循環的每個項目,並顯示鍵值對? –

+0

是的,所以關鍵將在 X數量。然後在​​中的值,無論有多少行。一直在掙扎。在整個 – Coughlin

+0

中使用jQuery在較新版本的Handlebars中,這是默認處理的:http://stackoverflow.com/questions/11884960/how-to-get-index-in-handlebars-each-helper – fuzzyvagina

回答

1

如果要顯示鍵值對,可以在Handlebars中編寫助手。

Handlebars.registerHelper('eachkeys', function(context, options) { 
 
    var fn = options.fn, inverse = options.inverse; 
 
    var ret = ""; 
 

 
    var empty = true; 
 
    for (key in context) { empty = false; break; } 
 

 
    if (!empty) { 
 
    for (key in context) { 
 
     ret = ret + fn({ 'key': key, 'value': context[key]}); 
 
    } 
 
    } else { 
 
    ret = inverse(this); 
 
    } 
 
    return ret; 
 
}); 
 

 
$(function() { 
 
    var data = {"interval":"2012-01-21", 
 
     "advertiser":"Advertisers 1", 
 
     "offer":"Life Insurance", 
 
     "cost_type":"CPA", 
 
     "revenue_type":"CPA"}; 
 
       
 
    var source = $("#template").html(); 
 
    var template = Handlebars.compile(source); 
 
    $('#content').html(template({'data': data})); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0.beta2/handlebars.min.js"></script> 
 
<script id="template" type="text/x-handlebars-template"> 
 
    {{#eachkeys data}} 
 
    <li>{{this.key}} - {{this.value}}</li> 
 
    {{/eachkeys}} 
 
</script> 
 
<div id="content"> 
 
</div>

編輯

看起來這是不太你想要什麼,但有可能拿出一個幫手,會做的伎倆。

+0

我覺得非常相似,他們的鑰匙是在這裏的鑰匙爲他們在字符串中返回的x個量?那樣有用嗎? – Coughlin

+0

然後根據密鑰 – Coughlin

+0

在適當列中的​​中的值幫助您查看要從數據生成的HTML示例。數據是對象數組嗎? (目前尚不清楚,因爲只給出了一個數組元素。)如果是這種情況,您可以簡單地遍歷第一個元素中的數組鍵以生成標題,然後(假設列在整個數據中是統一的),填充行爲每個項目。 –

1

我使用Handlebars修改了以前的響應來處理對象鍵值對。這是因爲只是做以下簡單:

<script id="template" type="text/x-handlebars-template"> 
    {{@entries}} 
    <li>{{KEY}} - {{VALUE}}</li> 
    {{/entries}} 
</script> 
<div id="content"> 
</div> 

我把小提琴的例子,希望它可以幫助人在那裏。請注意,這個實現取決於把手

Mustache Attribute addition.

+1

這不是鬍子 – Tebe

+0

你能更具體嗎,我想你沒有看到鏈接到小提琴 –

+0

我有一個快速的樣子,你把它稱爲手把,而不是鬍子。必須是不同的圖書館,或? – Tebe