It's currently not possible to silently reset a model with nested data, as any nested things created will be created noisily, as the options object with silent=true are not passed along.
I ended up doing this:
model.set(rModel.toJSON ? rModel.toJSON() : rModel);
// Remove the model from the incoming list because all remaining models
// will be added to the relation
modelsToAdd.splice(i,1);
} else {
modelsToRemove.push(model);
}
});
_.each(modelsToRemove, function(model) {
- relation.remove(model);
+ relation.remove(model, options);
});
- relation.add(modelsToAdd);
+ relation.add(modelsToAdd, options);
} else {
// The incoming val that is being set is not an array or collection, then it represents
// a single model. Go through each of the models in the existing relation and remove
// all models that aren't the same as this one (by id). If it is the same, call set on that
// model.
relation.each(function(model) {
if(val[id] === model[id]) {
- model.set(val);
+ model.set(val, options);
} else {
- relation.remove(model);
+ relation.remove(model, options);
}
});
}
return relation;
}
if(relation && relation instanceof Model) {
- relation.set(val);
+ relation.set(val, options);
return relation;
}
options._parent = this;
val = new this.relations[attr](val, options);
val.parent = this;
}
return val;
};
It's currently not possible to silently reset a model with nested data, as any nested things created will be created noisily, as the options object with silent=true are not passed along.
I ended up doing this:
Does that seem viable?