2014-12-17 2 views
0

У меня есть очень простой пример Backbone:Infiinite вложенные коллекции в Backbone

var myModel = Backbone.Model.extend(); 

var collection = Backbone.Collection.extend({ 
    model: myModel, 


}); 

var c = new collection([ 
    {first_name: 'a', 
    last_name:'b' 
    }, 
    {first_name:'c', 
    last_name:'d' 
    } 
    ]); 

console.log('c is'); 
console.log(c); 

Вы можете увидеть jsfiddle here.

Когда вы просматриваете это в инструментах разработчика Chrome, вы можете увидеть, что на каждой модели Backbone есть атрибут коллекции, который вы можете развернуть и войти в игру снова. Смотрите изображение:

enter image description here

Что это? Почему это так?

+3

Каждая модель содержит ссылку на коллекцию, в которой она находится; Каждая коллекция содержит ссылки на модель, которую она держит - это цикл, который вы видите. – Lix

ответ

0

Внутри каждой модели хранится объект коллекции, если он является частью коллекции. Что здесь происходит, вы просматриваете коллекцию в консоли и внутри нее есть две модели. Каждая модель имеет хранимый в ней объект коллекции (который представляет собой ту же коллекцию, которую вы просматриваете). Таким образом, это похоже на рекурсию при просмотре в консоли

В настоящее время это не документировано в магистральных js. См. https://github.com/jashkenas/backbone/issues/1161 для получения дополнительной информации.