Backbone - Relational Nested working without KeySources
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone-localstorage.js/1.1.16/backbone.localStorage-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone-relational/0.10.0/backbone-relational.min.js"></script>
<html>
<head>
</head>
<body>
</body>
</html>
JavaScript
modelA = Backbone.RelationalModel.extend({
defaults: {
name: "modelA",
},
relations: [
{
type: Backbone.HasMany,
key: 'model_bs',
relatedModel: 'modelB',
collectionType: 'modelBs',
reverseRelation: {
key: 'model_a',
includeInJSON: 'id'
}}
]
});
modelB = Backbone.RelationalModel.extend({
defaults: {
name: "modelB",
},
relations: [
{
type: Backbone.HasMany,
key: 'model_cs',
relatedModel: 'modelC',
collectionType: 'modelCs',
reverseRelation: {
key: 'model_b',
includeInJSON: 'id'
}}
]
});
modelC = Backbone.RelationalModel.extend({
defaults: {
name: "modelC",
},
});
modelAs = Backbone.Collection.extend({
model: modelA,
localStorage: new Store("modelAs")
});
modelBs = Backbone.Collection.extend({
model: modelB,
localStorage: new Store("modelBs")
});
modelCs = Backbone.Collection.extend({
model: modelC,
localStorage: new Store("modelCs")
});
preLoadAs = [
{
id: 1,
name: 'Aone',
model_bs: [1, 2, 3]},
{
id: 2,
name: 'Atwo'},
{
id: 3,
name: 'Athree'},
]
preLoadBs = [
{
id: 1,
name: 'Bone',
model_cs: [1, 2, 3],
model_a_id: 1},
{
id: 2,
name: 'Btwo',
model_a_id: 1},
{
id: 3,
name: 'Bthree',
model_a_id: 1},
]
preLoadCs = [
{
id: 1,
name: 'Cone',
model_c_id: 1},
{
id: 2,
name: 'Ctwo',
model_c_id: 1},
{
id: 3,
name: 'Cthree',
model_c_id: 1},
]
loaderA = new modelAs();
loaderA.reset(preLoadAs);
loaderB = new modelBs();
loaderB.reset(preLoadBs);
loaderC = new modelCs();
loaderC.reset(preLoadCs);
testAs = new modelAs();
testAs.reset(preLoadAs);
testA = testAs.get(1);
$("body").append("Test A: ");
$("body").append(testA.get('name'));
$("body").append("<br/>");
testA.getAsync('model_bs');
testBs =...