Decir que tengo un modelo User
en JavaScript que se ve algo como esto:¿Cómo se interpola una dinámica {{property}} en Handlebars/Ember.js?
var User = function(attributes) {
this.attributes = attributes;
}
User.fields = [
{name: 'firstName'},
{name: 'lastName'},
{name: 'email'}
]
User.prototype.get = function(key) {
return this.attributes[key];
}
User.all = [new User({firstName: 'Foo'})];
Y quiero ejecutarlo a través de una plantilla de manillares que pasa a través de cada campo en la clase User
, crea una cabecera para ello, y a continuación, para cada usuario hace que los valores:
<table>
<thead>
<tr>
{{#each User.fields}}
<th>{{name}}</th>
{{/each}}
</tr>
</thead>
<tbody>
{{#each User.all}}
<tr>
{{#each User.fields}}
<td>{{content.get(name)}}</td>
{{/each}}
</tr>
{{/each}}
</tbody>
</table>
Mi pregunta es, ¿cómo lograr que una parte interna:
{{#each User.fields}}
<td>{{content.get(name)}}</td>
{{/each}}
Eso es básicamente hacer user.get(field.name)
. ¿Cómo puedo hacer eso en Handlebars, dado que no conozco los campos de antemano y quiero que esto sea dinámico?
Gracias por su ayuda.
¿hay alguna solución elegante en lugar de este corte. – Amerrnath
No es que el manubrio sea malo. Pero incluso la implementación Ember 2.5.x del manubrio es horrible. Si quieres hacer algo dinámico, tienes que escribir un montón de manillas "hacky" que ayudan a JavaScript. Vengo de usar Angular y con eso simplemente colocas un {{myJavaScriptFunctionThatReturnsDynamicData (item)}} en tu HTML y listo. – RyanNerd