Как я могу получить длину отложенной модели в CanJS?
Я получаю модель отложенного объекта со структурой, подобной этой:
Как я могу узнать, сколько объектов присутствует внутри этого объекта (в данном случае три). Если я использую 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 ответа
can.Map имеет функцию keys, которая даст вам массив ключей на вашей карте, и из этого вы можете получить количество объектов, проверив длину этого массива.
Использование can.List в качестве структуры данных также будет работать. Ключи в ваших данных являются числовыми, и вам нужно проверить длину, все вещи, для которых построен. Список.
Атрибут модели _data содержит копию только модели без привязок. Самый простой способ сделать это - использовать:
Object._data.length