comment passer des paramètres à Handlebars helper? Quelle est la différence entre options.hash & amp; options.data
Voici un typique Guidon helper:
Ember.Handlebars.helper 'myHelper', (value, options) ->
...
Selon cette protip vous pouvez passer de hachage pour Guidon aides. J'ai regardé sur la source et découvert qu'il fournit à la fois options.hash
et options.data
. Je suis un peu confus que cela ne fonctionnerait pas comme prévu:
{{#with controllers.currentCardCategory}}
{{#each property in cardProperties}}
<td class="td">{{cardProperty this property=property.symbol}}</td>
{{/each}}
{{/with}}
this
est l'actuel Card
enregistrement. Ici, je me suis property.symbol
comme une chaîne de caractères
Mais cela a fonctionné:
{{#with controllers.currentCardCategory}}
{{#each property in cardProperties}}
<td class="td">{{cardProperty this property.symbol}}</td>
{{/each}}
{{/with}}
et la valeur était accessible via le options
.
Mais maintenant je ne peux pas faire ça:
{{#with controllers.currentCardCategory}}
{{#each property in cardProperties}}
<td class="td">{{cardProperty this property.symbol anotherParam yetAnotherParam}}</td>
{{/each}}
{{/with}}
Ma question est: comment passer d'autres paramètres à l'aide et quelle est la différence entre options.hash
et options.data
dans l'aide?
source d'informationauteur wryrych
Vous devez vous connecter pour publier un commentaire.
Paramètres passés à une aide devenir
arguments
à la fonction d'assistance. Les valeurs que vous fournissez dans le modèle immédiatement après la{{helperName
devenir les arguments. Le dernier argument passé à la fonction d'aide est unoptions
objet qui fournit des informations supplémentaires à l'aide comme uneoptions.hash
etoptions.contexts
etc. Paires clé-valeur fournie après les paramètres correspondent à laoptions.hash
de la propriété.Pour un
hello
helper qui prend 3 arguments, l'aide serait,La
hello
aide peut être utilisé dans un modèle comme ça,Ici les valeurs de
lorem
ipsum
etdolor
propriétés seraient utilisés et retournés comme un string.Outre les arguments requis, si vous passez dans le bac d'alimentation supplémentaire de paramètres qu'il serait disponible dans
options.hash
. Ces propriétés sont traitées comme des chaînes de caractères et ne sont pas résolus par défaut. Vous auriez besoin de les utiliser,options.data.view
à la recherche de leurs valeurs premières. Voir ce réponse pour un exemple, si vous avez besoin pour ce faire.Enfin
options.data
est spécial biens fournis aux aides. C'est le raw guidonFrame
contenant des variables, des contextes et ainsi de suite. C'est principalement pour une utilisation avec bloc d'aides. Depuis de bloquer les aides ne pas faire de rendu eux-mêmes, mais en appeler d'autres aides,options.data
permet par exemple de bloquer les aides à injecter des variables supplémentaires dans l'enfant aides image. Pour les détails, voir la documentation ici.Voici un jsbin exemple.