Задать вопрос
@Lomiren
Web-программист

Backbone как загрузить рекурсивные данные?

Подскажите, пожалуйста, как лучше всего организовать рекурсивную загрузку данных в backbone, с неограниченным количеством вложенностей?

Что-то типа склада:

Категория 1

— Товары(товар 1, товар 2),

— Подкатегория 1.1

— — товары ( товар3, товар4)

— Подкатегория 1.2

— — товары ( товар5, товар6)

Категория 2

— Товары(товар 7, товар 8),
  • Вопрос задан
  • 3336 просмотров
Подписаться 8 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
sdevalex
@sdevalex
var Item = Backbone.Model.extend({
  defaults: {
    items: [],
    parent: null //Ссылка на родительский элемент
  },

  initialize: function(){
     this.set('items', new ItemsCollection(this.get('items')));
     this.get('items').each(function(){ this.set('parent', this) }, this);
  }
});

var ItemsCollection = Backbone.Collection.extend({
  model: Item,
  //...
});

var collection = new ItemsCollection();
collection.fetch();
Ответ написан
kuzemchik
@kuzemchik
Backbone Relational мега-тормозная.
Я описывал руками связи между вложенными коллекциями и глобальной. Каждая локальная коллекция заполняет себя из глобальной во время инициализации.
Если записей не много (меньше тысячи) можно просто грузить в коллекции, и доставать во время рендера то количество которое нужно собирая дерево налету.
Ответ написан
Комментировать
xamd
@xamd
javascript-ninja
Обычно сначала вытаскивается первый уровень узлов, при попытке открыть его динамически подключается второй. Это делается через метод модели fetch. Всё, что требуется - передавать ID родительской категории.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы