# 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
年费',属于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}}”部分。您可以看到的 helper 来自Handlebars helpers 的 swag 集合。不幸的是,助手没有解析属性,所以它property.symbol
变成了一个字符串。
这里是:
Handlebars.registerHelper 'is', (value, test, options) ->
if value is test then options.fn(@) else options.inverse(@)
我认为这是可能的,但有合适的助手——不过不知道是哪一个。
我想要避免的是求助于计算属性,如if isYourSavings
.