Search code examples
javascriptbackbone.js

Backbone update nested attributes


I have a table that displays a collection of models that looks roughly like this:

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

I can select a model from the table and perform an edit on its attributes in a modal. After I finish editing attributes I call save, close the modal and pass an event to refresh my table. In my table view I recieve an event and call fetch with update: true

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

However none of the nested attributes, in this case category, get updated without a hard refresh. How I can fix this? Thanks!


Solution

  • try passing reset:true as options to fetch

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

    This will stop backbone from merging the data received from the server.