如何在CanJS中获得延迟模型的长度?

时间:2014-05-14 06:13:07

标签: javascript canjs canjs-model

我得到的模型延迟对象的结构如下:

enter image description here

如何找出此对象中有多少个对象(在本例中为三个)。如果我使用Object.keys(myObject).length,它包括对象观察者和其他数据,如_computeBindings,_bindings等。我甚至试图在计算长度时使用hasOwnProperty,但它没有给我想要的结果。

我可以想出的一种方法是遍历索引并获取最后一个索引值:

can.each(myObject,function(myObject,index){
// Get the last index value and put it into some variable
});

这是否有API?

3 个答案:

答案 0 :(得分:2)

can.Map有一个keys函数,它会为你提供一个Map数组中的键,你可以通过检查数组的长度来获取多少个对象。

使用can.List作为您的数据结构也可以。数据中的键是数字键,您需要检查长度,以及为其构建的所有内容。

答案 1 :(得分:0)

尝试使用myObject.attr('length')

答案 2 :(得分:0)

模型_data属性仅包含没有绑定的模型的副本。最简单的方法是使用:

Object._data.length