# 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
annual_fee',屬於CreditCardProperty
。每個卡類別具有不同的卡屬性組。只有兩個類別具有屬性(類別具有許多卡屬性),並且一條記錄的computed
字段設置爲true
。這意味着模板應該查找相應的控制器。定製Handlebars幫手 - 參數未解決
作爲symbol
(例如age_to_apply)涉及信用卡式的一個字段(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}}'部分。你可以看到的幫手來自swag collection of Handlebars helpers。不幸的是,該幫助程序不會解析屬性,因此property.symbol
將成爲一個字符串。
這就是:
Handlebars.registerHelper 'is', (value, test, options) ->
if value is test then options.fn(@) else options.inverse(@)
我認爲這是可能的,但with the right helper - 不知道是哪一個,雖然。
我所要做的就是避免使用像if isYourSavings
這樣的計算屬性。
謝謝!有用!我在你的示例代碼中做了一些小修改。希望你不介意。 :) – wryrych