-
Notifications
You must be signed in to change notification settings - Fork 95
Open
Description
简单来说,现在的etpl并不支持backbone的Collection,也不支持emc的Collection,因为它们封装了数组,并且没有暴露出类数组的索引下标访问功能
我们当然可以在一切这样的场景下先把Collection对象变成纯数组,但这会使得应用系统变得非常复杂,我们使用Collection是希望使用它的变化通知的相关事件,转为纯数组会失去这一功能,或者会变成每次收到集合变化时再转一次纯数组交给etpl
我总结了一下几个知名库的封装数组类的接口:
backbone.Collection:有.length属性,有each和forEach方法,使用at(index)访问元素ember.Array:有.length属性,有forEach方法,使用objectAt(index)访问元素ko.ObservableArray:有.length属性,能直接下标访问jQuery:有.length,能直接下标访问
我们的emc.Collection有.length属性,没有任何遍历的方法,使用get(index)访问元素
因此我希望可以支持这一类的封装数组,从上面来看,大家都会有.length属性,但访问方法各不相同,其中以each和forEach最为通用,emc可以添加该方法作支持
个人的建议是当具备.length属性时,增加检测forEach及each方法,存在的话也认为是一个数组并使用方法进行循环
最终这一需求会影响多少的体积,是否合适,还是交给 @errorrik 来判断吧
Metadata
Metadata
Assignees
Labels
No labels