핸들바 템플릿에서 두 값을 비교하고 싶습니다. {{#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일 뿐이니 Computed Property를 사용하세요.
아래와 같은 것을 구현하고 싶습니다:
두 개의 each 루프를 사용
- 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>