Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When working with nested Backbone models, I ran into a situation where DeepModel was setting changes directly on nested models after fetch. The result was that the backbone model itself had attributes on it. Here's the scenario:
Fetch -- HTTP GET returns:
{
foo: 'foo'
}
On the Model:
{
_changing: false
_events: Object
cId: "c37",
clear: function () { [native code] }
...
foo: "foo" // Set right on the model, not on the attributes
...
url: function () { [native code] }
values: function () { [native code] }
}
In order to fix this, I made DeepModel check if the object being modified is a backbone model and using that object's getters and setters instead of just result[attr] = value.
In addition, there is support (and additional tests) for:
If there are any other changes I should make, let me know! Should be pretty well unit tested