Привязка данных сгруппированных коллекций с Epoxy.js ?

#javascript #backbone.js #collections

#javascript #backbone.js #Коллекции

Вопрос:

надеюсь, вы сможете мне помочь, мой вопрос остается без ответа после нескольких часов поиска.

я использую Backbone.js с помощью Epoxy.js Просмотр привязок данных и привязка коллекции к моему представлению для отображения каждой записи:

 var list = new (Backbone.Collection.extend({
    model: Model
}))();

var View = Backbone.Epoxy.View.extend({
    el: $el,
    collection: list,
    itemView: ItemView,
    bindings: { 'tbody': 'collection:$collection' }
});

new View();
  

Модель является базовой основой.Модель, ItemView представление, представляющее одну запись моей коллекции:

 var Model = Backbone.Model.extend({
    defaults: {
        foo: 'foo',
        bar: 'bar'
    }
});

var ItemView = Backbone.Epoxy.View.extend({
    tagName: "tr",

    el: '<tr>' [
        '<td class="list-foo"></td>',
        '<td class="list-bar"></td>'
    ].join('') '</tr>',

    bindings: {
        '.list-foo': 'text:foo',
        '.list-bar': 'text:bar',
    }
});
  

Теперь это работает как шарм, каждая модель в моей коллекции будет отображаться в моей таблице идеально, и любое обновление моего списка обновит мои представления. Но:

Есть ли способ сгруппировать мою коллекцию с обновлением моих представлений?

Collection.groupBy() возвращает массив с моими сгруппированными данными, но как я могу справиться с этим с Epoxy.Views ?

Единственное, но уродливое решение, которое я могу придумать, — это заполнить другую коллекцию новой моделью (сгруппированными данными), заменить view.collection , view.ItemView и обновить привязки, но нет ли другого, более чистого способа сделать это?

Заранее спасибо!

Комментарии:

1. привет. есть успехи?

2. К сожалению, нет — отошел от backbone через год после моего поста

3. Извините, просто из любопытства, что за фреймворк вы используете сейчас?

4. В настоящее время активно используется Vue.js и я очень доволен этим.

5. вау! точно мои мысли о Vue. Спасибо!