无法计算从组件集合派生的属性
fails to compute attribute derived from components collection
我有以下 (Coffeescript) 代码:
Member = Ractive.extend
template : "<p>{{name}} {{age}}</p>"
computed :
age : ->
parseInt(@get('age_in_days')/365)
new Ractive
el : "#family"
template : "{{#members}}<member name='{{name}}' age_in_days='{{age_in_days}}'/>{{/members}}{{youngest}}"
components :
member : Member
data:
members : [
{name : 'Fred', age_in_days: 8000},
{name : 'Barney', age_in_days: 10000},
{name : 'Wilma', age_in_days: 7000}
]
computed :
all_ages : ->
_(@findAllComponents('member')).map (member)->
member.get('age')
youngest : ->
_(@get('all_ages')).min()
问题出在根 Ractive 实例的计算属性中。从 Ractive 代码深处抛出一个错误 ("TypeError: Cannot read property 'findAllComponents' of undefined")。计算属性 "all_ages" 和 "youngest" 未计算或呈现。
如有任何见解,我们将不胜感激。提前致谢。
它似乎在 oninit 中有效,但在计算上下文中无效。
oninit: ->
console.log( (@.findAllComponents('member') ) )
猜想某些上下文丢失了。也许在 github 上与他们联系?
解决方法是 -
computed :
all_ages : ->
@get('members').map((m) -> m.age_in_days)
youngest : ->
ages = @get('all_ages')
Math.min.apply @, ages
我有以下 (Coffeescript) 代码:
Member = Ractive.extend
template : "<p>{{name}} {{age}}</p>"
computed :
age : ->
parseInt(@get('age_in_days')/365)
new Ractive
el : "#family"
template : "{{#members}}<member name='{{name}}' age_in_days='{{age_in_days}}'/>{{/members}}{{youngest}}"
components :
member : Member
data:
members : [
{name : 'Fred', age_in_days: 8000},
{name : 'Barney', age_in_days: 10000},
{name : 'Wilma', age_in_days: 7000}
]
computed :
all_ages : ->
_(@findAllComponents('member')).map (member)->
member.get('age')
youngest : ->
_(@get('all_ages')).min()
问题出在根 Ractive 实例的计算属性中。从 Ractive 代码深处抛出一个错误 ("TypeError: Cannot read property 'findAllComponents' of undefined")。计算属性 "all_ages" 和 "youngest" 未计算或呈现。
如有任何见解,我们将不胜感激。提前致谢。
它似乎在 oninit 中有效,但在计算上下文中无效。
oninit: ->
console.log( (@.findAllComponents('member') ) )
猜想某些上下文丢失了。也许在 github 上与他们联系?
解决方法是 -
computed :
all_ages : ->
@get('members').map((m) -> m.age_in_days)
youngest : ->
ages = @get('all_ages')
Math.min.apply @, ages