如何在Ember中创建自定义枚举器?

时间:2014-05-16 13:20:19

标签: ember.js

我正在寻找一种方法来创建自定义枚举器,以便在sum枚举器的示例中使用reduce()多次使用Enumerable只能总和值不是一个好的解决方案。

nextObject API表示枚举器必须实现length方法并具有Ember.Enumerable属性。但并非所有内置的普查员都有这些。

我尝试重新打开sum课程,但失败了。

如何基于reduce(或资源如何创建)创建# custom enumarator I want to have sum = @get('items').sum(0) # current solution sum = @get('items').reduce ((prev, curr) -> prev + curr,) 0 枚举器的示例将是一个很好的帮助。

修改

Em.computed.sum

Ember有{{1}},但我无法将其视为正常的可枚举。

1 个答案:

答案 0 :(得分:2)

我认为你混淆枚举函数和可枚举对象。

可枚举的对象必须实现nextObjectlength。这些是链接列表,队列,堆栈和集合。基本上,您想要迭代的数据结构。

枚举函数可以应用于可枚举对象,例如summinmax

您不应该将此方法添加到Ember.Enumerable,因为并非所有枚举都可以求和。一个数字列表可以,但你如何总结一组水果?

那说,这应该回答你的问题:

http://emberjs.jsbin.com/nodojadi/1/edit