meteor handlebars.js

¿Pueden las plantillas secundarias de Meteor acceder a los ayudantes de plantillas principales?



handlebars.js (2)

También puede registrar un ayudante común:

Template.registerHelper(''isTrue'', function(boolean) { return boolean == "true"; });

Y llámalo así en tu html:

<input type="checkbox" checked="{{isTrue attr}}"/>

Digamos que tenemos una plantilla principal y una plantilla secundaria:

<template name="parent"> {{> child }} </template> <template name="child"> {{#if show}} //Do something {{/if}} </template>

Si asignamos ''mostrar'' a la plantilla padre:

if (Meteor.isClient){ Template.parent.show = function(){ return Session.get(''isShowing''); } }

¿Hay alguna forma para que la plantilla hijo tenga acceso a ella?


Editar

Podría hacer un ayudante de manillar universal para poder usar los valores de Sesiones en cualquier lugar de su html:

Cliente js

Handlebars.registerHelper(''session'', function(key) { return Session.get(key); });

Cliente HTML

<template name="child"> {{#if session "show"}} //Do something {{/if}} </template>

De manera similar, también puede usar {{session "show"}} / {{#if session "show"}} en su plantilla principal y no tener que usar más el helper Template.parent.show .

Respecto al uso de la notación ../ . Existen ciertos escenarios en los que puede no funcionar: https://github.com/meteor/meteor/issues/563 . Básicamente funciona dentro de {{#bloqueadores auxiliares}} pero no con plantillas, pero funcionaría en un ayudante de bloque si contiene un subtemplate.

<template name="child"> {{#if ../show}} Do something {{/if}} </template>