أريد مقارنة قيمتين في قالب هاندلبر. لا يمكن القيام بذلك باستخدام مساعد {{#if}}. إذن كيف يمكنني إنشاء مساعد جديد في Discourse؟
لقد جربت الكود أدناه لكنه لا يعمل:
تم إنشاء الملف: /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];
}));
يتم إلقاء استثناء: makeBoundHelper is not a function
إنه مجرد EmberJS، استخدم خاصية محسوبة.
أريد تحقيق شيء مشابه لما يلي:
وجود حلقتين تكراريتين
- productCategories : [“category1”, “category2”, …]
- productTags : [{productCategory:“category1”, tagName:“tag1”, isChecked:true}, …]
والآن أريد مقارنة عناصر productCategories مع tag.productCategory كما هو موضح في الكود.
هل يمكننا تحقيق ذلك عبر الخصائص المحسوبة (Computed properties)؟
<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>