2015-12-17 3 views
1

У меня есть таблица, которая показывает коллекцию моделей, которая выглядит примерно так:обновления Backbone вложенных атрибуты

{ 
    id: 1, 
    name: "Product", 
    category: { 
    id: 1, 
    name: "CategoryName" 
}, 
{ 
    id: 2, 
    name: "Another Product", 
    category: { 
    id: 1, 
    name: "CategoryName" 
}, 
etc.. 

можно выбрать модель из таблицы и выполнить правку на его атрибутах в модальном. После того, как я закончу редактирование атрибутов, я вызываю save, закрываю modal и передаю событие, чтобы обновить таблицу. На мой взгляд таблицы я получаю событие и вызвать fetch с update: true

App.vent.on("refresh:products", function() { 
    return this.collection.fetch()({ 
     update: true 
    }); 
}); 

Однако ни один из вложенных атрибутов, в этом случае category, обновляется без жесткого обновления. Как я могу это исправить? Благодаря!

+0

Я думаю, что у вас здесь нет хорошей логики. Благодаря вашему JSON лучшим способом является разделение моделей (ProductModel, CategoryModel). –

+0

@ Александр Шлинчак, я не уверен, что вы имеете в виду. Модель продукта связана с несколькими другими моделями, такими как категория, измерения и т. Д. Я сериализую модель со всеми ее родственниками вложенным образом, хотя я могу объединить вложенные атрибуты в родительское дерево, например 'category_name: «name» и «category_id: 1», но как мне это выиграет? –

ответ

2

попробуйте передать reset:true в качестве опции для выборки

App.vent.on("refresh:products", function() { 
    return this.collection.fetch()({ 
     reset: true 
    }); 
}); 

Это остановит магистраль от объединения данных, полученных от сервера.

Смежные вопросы