Backbone - Relational Nested Broken with KeySources
HTML
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script src="https://raw.github.com/gist/1506758/091d7f3680489ecb8b511e196edcfc2e52dd05c6/backbone-localstorage.js"></script>
<script src="https://raw.github.com/PaulUithol/Backbone-relational/master/backbone-relational.js"></script>
JavaScript
var User = Backbone.RelationalModel.extend({
urlRoot: ' ',
sync: function (method, model, options) {
options.success({
id: 1,
name: 'barUser'
});
}
});
var Task = Backbone.RelationalModel.extend({
urlRoot: ' ',
relations: [
{
type: Backbone.HasOne,
key: 'creator',
relatedModel: User,
keySource: 'creator_id'
}
],
unset: function(attr, options) {
if (attr == 'creator_id') {return false}
(options || (options = {})).unset = true;
return this.set(attr, null, options);
},
sync: function (method, model, options) {
options.success({
id: 1,
name: 'barTask',
creator_id: 1
});
}
});
var Tasks = Backbone.Collection.extend({
model: Task,
sync: function (method, model, options) {
options.success([
{
id: 2,
name: 'barTask1',
creator_id: 1
},
{
id: 3,
name: 'barTask2',
creator_id: 1
}
]);
}
});
var user = new User(),
task = new Task(),
tasks = new Tasks();
user.fetch();
task.fetch();
tasks.fetch();
console.log(user.attributes, task.attributes, tasks.models);