Je souhaite comparer deux valeurs dans un modèle Handlebar. Cela ne peut pas être réalisé à l’aide de l’helper {{#if}}. Comment puis-je créer un nouvel helper dans Discourse ?
J’ai essayé le code ci-dessous, mais cela ne fonctionne pas :
Fichier créé : /assets/javascripts/discourse/helpers/eq.js.es6
import { registerHelper } from 'discourse-common/lib/helpers'
var makeBoundHelper = Ember.HTMLBars.makeBoundHelper;
registerHelper('eq', makeBoundHelper(function(params) {
return params[0] === params[1];
}));
Exception levée : makeBoundHelper n’est pas une fonction
C’est simplement EmberJS, utilisez une propriété calculée.
Je souhaite obtenir quelque chose comme ci-dessous :
avoir deux boucles
- productCategories : [“category1”, “category2”, …]
- productTags : [{productCategory:“category1”, tagName:“tag1”, isChecked:true}, …]
Et maintenant, je veux comparer les éléments de productCategories avec tag.productCategory comme montré dans le code.
Pouvons-nous réaliser cela avec des propriétés calculées ?
<div class="tag-list-section">
{{#each this.productCategories as |category|}}
<div id={{category}} class="select-tag-category">
{{#each this.productTags as |tag|}}
{{#if (eq category tag.productCategory)}}
{{input type="checkbox" name=tag.tagName checked=tag.isChecked }} {{tag.tagName}}
{{/if}}
{{/each}}
</div>
{{/each}}
</div>