javascript meteor handlebars.js meteor-helper

javascript - ¿Cómo usar múltiples parámetros en un asistente de manubrio con meteoro?



handlebars.js meteor-helper (2)

Estoy intentando crear un ayudante personalizado usando Meteor. Siguiendo con el documento aquí: https://github.com/meteor/meteor/wiki/Handlebars

He intentado definir mi ayudante de la siguiente manera:

Template.myTemplate.testHelper = function(foo, bar, options) { console.log(foo); console.log(bar); }

Mi plantilla se ve así:

<template name="myTemplate"> {{#testHelper "value1" "value2"}} {{/testHelper}} </template>

Mirando la salida de mi consola, esperaba ver 2 líneas de salida:

value1 value2

Sin embargo, mi consola se ve así:

value1 function (data) { // don''t create spurious annotations when data is same // as before (or when transitioning between e.g. `window` and // `undefined`) if ((data || Handlebars._defaultThis) === (old_data || Handlebars._defaultThis)) return fn(data); else return Spark.setDataContext(data, fn(data)); }

Tenga en cuenta que soy completamente nuevo para el meteoro y para manillar. Creo que sería mucho más feliz usando guiones bajos, pero la documentación para miradas de meteoritos sobre subrayado casi en su totalidad. ¿Estoy haciendo algo mal al definir mi función de ayuda? Parece que no está viendo el segundo parámetro "barra", y en cambio lo interpreta como las opciones. (Nota: si console.log (opciones) devuelve ''indefinido'').

Meteor versión 0.4.0 (8f4045c1b9)


Además de

<template name="myTemplate"> {{testHelper "value1" "value2"}} </template>

En lugar de pasar un valor como parámetro, pase la función como parámetro. Aquí está el código para ese

<template name="myTemplate"> {{ testHelper1 (testHelper2 "value2") }} </template>

¡¡¡¡¡aclamaciones!!!!!


Tu lógica es buena, solo haz algunos cambios a la plantilla

<template name="myTemplate"> {{testHelper "value1" "value2"}} </template>

Ten en cuenta que la función testHelper solo está definida en la plantilla myTemplate.

Si desea registrar testHelper globalmente, deberá hacer algo como esto

Handlebars.registerHelper(''testHelper'', function(foo, bar){ console.log(foo); console.log(bar); });

Que te diviertas