valor tiene saber obtener modificar elemento data con cambiar atributo javascript handlebars.js

javascript - tiene - Acceda a las propiedades del elemento primario con un bucle ''cada'' de manubrios



saber si un elemento tiene un atributo jquery (2)

El nuevo método usa notación de puntos, la notación de barras está en desuso ( http://handlebarsjs.com/expressions.html ).

Entonces, el método real para acceder a los elementos de los padres es el siguiente:

@root.grandfather.father.element @root.father.element

En su ejemplo específico, usaría:

{{#each items}} <div style="font-size:{{@root.viewData.itemSize}}px">{{this}}</div> {{/each}}

Otro método de la documentación oficial ( http://handlebarsjs.com/builtin_helpers.html ) está usando alias

Cada ayudante también admite parámetros de bloque, lo que permite referencias nombradas en cualquier lugar del bloque.

{{#each array as |value key|}} {{#each child as |childValue childKey|}} {{key}} - {{childKey}}. {{childValue}} {{/each}} {{/each}}

Creará una clave y una variable de valor a la que los niños pueden acceder sin la necesidad de referencias de variables delegadas. En el ejemplo anterior, {{key}}> es idéntico a {{@ .. / key}} pero en muchos casos es más legible.

Considere los siguientes datos simplificados:

var viewData = { itemSize: 20, items: [ ''Zimbabwe'', ''dog'', ''falafel'' ] };

Y una plantilla de manubrios:

{{#each items}} <div style="font-size:{{itemSize}}px">{{this}}</div> {{/each}}

Esto no funcionará porque dentro de each bucle, el alcance principal no está accesible, al menos no de la manera que lo he intentado. ¡Espero que haya una forma de hacerlo!


Resulta que esto es posible anteponiendo ../ al nombre de la propiedad:

{{#each items}} <div style="font-size:{{../itemSize}}px">{{this}}</div> {{#if this.items.someKey}} <div style="font-size:{{../../itemSize}}px">{{this}}</div> {{/if}} {{/each}}

Puede subir varios niveles repitiendo el ../ . Por ejemplo, para subir dos niveles use ../../key .

Para obtener más información, consulte la documentación de Handlebars en las rutas .