2012-01-22 15 views
6

Estoy utilizando esta información aquí: http://pastie.org/3231052 - ¿Cómo puedo mostrar la clave en lugar del valor usando Mustache o manubrios?Mustache.js - tecla de pantalla en lugar del valor

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

Qué quiere decir que desea reproducir en bucle sobre cada elemento y mostrar pares de valores clave? –

+0

Sí, entonces la clave estará en por X cantidad de ellos. Luego, el valor en el independientemente de la cantidad de filas que haya. Estado luchando Usando jQuery a lo largo de – Coughlin

+0

En las versiones más nuevas de los manubrios esto se maneja de manera predeterminada: http://stackoverflow.com/questions/11884960/how-to-get-index-in-handlebars-each-helper – fuzzyvagina

Respuesta

1

Si desea mostrar pares de valores-clave, puede escribir un ayudante en los manillares.

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>

EDITAR

parece que esto no es exactamente lo que quiere, pero es posible llegar a un ayudante que va a hacer el truco.

+0

Creo que es muy similar a eso donde la clave está en la clave aquí para x cantidad de ellos devueltos en la cadena? ¿Eso funciona? – Coughlin

+0

Luego, el valor en el en la columna adecuada basada en la clave – Coughlin

+0

Ayudaría a ver un ejemplo del HTML que desea generar a partir de los datos. ¿Los datos son una matriz de objetos? (No está claro, ya que solo hay un elemento de matriz dado.) Si ese es el caso, simplemente puede recorrer las teclas de matriz en el primer elemento para generar los encabezados y luego (suponiendo que las columnas son uniformes en todos los datos), rellenar las filas para cada artículo. –

1

Modifiqué la respuesta anterior utilizando manubrios para manejar el par de valores clave de los objetos. Es tan simple como hacer lo siguiente:

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

pongo un ejemplo en el violín, espero que ayude a alguien por allí. Tenga en cuenta esta implementación depende de manillares

Mustache Attribute addition.

+1

esto no es bigote – Tebe

+0

Puede ser más específico, supongo que no vio el enlace para violín –

+0

Lo miré rápidamente, lo llamas como Manubrios, no como Moustache. Debe ser una biblioteca diferente, o? – Tebe

Cuestiones relacionadas