пользовательский помощник Handlebars - параметр не разрешен
# here is CreditCards controller context
{{#with controllers.currentCardCategory}}
{{#each property in cardProperties}}
{{#is property.symbol 'your_savings'}}
<td class="td">{{yourSavings}}</td>
{{else}}
<td class="td">{{cardProperty this property.symbol}}</td>
{{/is}}
{{/each}}
{{/with}}
Я создаю таблицу динамически. Все материалы взяты изArrayController
кроме одного, которое является вычисляемым свойством, которое приходит от контроллера.symbol' field is underscored like
year_fee 'и принадлежитCreditCardProperty
, Каждая категория карт имеет различный набор свойств карт. Только две категории имеют свойства (категория имеет много свойств карты) и одна запись имеетcomputed
поле установлено вtrue
, Это означает, что шаблон должен искать соответствующий контроллер.
Какsymbol
(например, age_to_apply) относится к одному из полей CreditCard (ageToApply
) все, что я мог понять, это использоватьcardProperty
помощник, который берет текущую карту в контексте (this
) и решаетproperty.symbol
Например:
camelizedProperty = categoryProperty.camelize()
card.get 'camelizedProperty'
В идеале я хотел бы обойтись без помощника и использовать его как-то так:
# *** {{property.symbol}} should look up this context
# and become e.g {{annual_fee}} or {{annualFee}} - is it possible?
{{#with controllers.currentCardCategory}}
{{#each property in cardProperties}}
<td class="td">{{property.symbol}}***</td>
{{/each}}
{{/with}}
Но проблема в том, что я не знаю, как я могу воспроизвести эту часть {{yourSavings}}. Помощник, которого вы видите, исходит отсвэг коллекция помощников руля, Помощник, к сожалению, не разрешает свойства так, чтобыproperty.symbol
становится строкой.
Вот:
Handlebars.registerHelper 'is', (value, test, options) ->
if value is test then options.fn(@) else options.inverse(@)
Я думаю, что это возможно, нос правильным помощником - не знаю, какой именно.
Чего я хотел бы избежать, так это прибегнуть к вычисляемым свойствам, таким какif isYourSavings
.