powmedia/backbone-deep-model — pull request #78 by adamterlson (2013-06-10 19:45:44+00:00)
Title: Nested Backbone.Model support

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'
}

------

{
_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:
- Models within models within models (etc)
- Passing options from DeepModel's set into the child model's set (e.g. silent).

If there are any other changes I should make, let me know! Should be pretty well unit tested