Skip to content

Commit 58db02f

Browse files
committed
Fixes #163.
1 parent 35ab44c commit 58db02f

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
###### Backwards compatible bug fixes
1212
- #156 - cached findAll pending query doesn't get removed sometimes
13+
- #163 - loadRelations shouldn't try to load a relation if the id for it is missing
1314
- #165 - DS.hasChanges() reports changes after loading relations
1415

1516
##### 1.0.0-rc.1 - 03 September 2014

dist/angular-data.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -2994,17 +2994,17 @@ function loadRelations(resourceName, instance, relations, options) {
29942994
var params = {};
29952995
params[def.foreignKey] = instance[definition.idAttribute];
29962996

2997-
if (def.type === 'hasMany') {
2997+
if (def.type === 'hasMany' && params[def.foreignKey]) {
29982998
task = DS.findAll(relationName, params, options);
29992999
} else if (def.type === 'hasOne') {
30003000
if (def.localKey && instance[def.localKey]) {
30013001
task = DS.find(relationName, instance[def.localKey], options);
3002-
} else if (def.foreignKey) {
3002+
} else if (def.foreignKey && params[def.foreignKey]) {
30033003
task = DS.findAll(relationName, params, options).then(function (hasOnes) {
30043004
return hasOnes.length ? hasOnes[0] : null;
30053005
});
30063006
}
3007-
} else {
3007+
} else if (instance[def.localKey]) {
30083008
task = DS.find(relationName, instance[def.localKey], options);
30093009
}
30103010

dist/angular-data.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/datastore/async_methods/loadRelations.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,17 @@ function loadRelations(resourceName, instance, relations, options) {
101101
var params = {};
102102
params[def.foreignKey] = instance[definition.idAttribute];
103103

104-
if (def.type === 'hasMany') {
104+
if (def.type === 'hasMany' && params[def.foreignKey]) {
105105
task = DS.findAll(relationName, params, options);
106106
} else if (def.type === 'hasOne') {
107107
if (def.localKey && instance[def.localKey]) {
108108
task = DS.find(relationName, instance[def.localKey], options);
109-
} else if (def.foreignKey) {
109+
} else if (def.foreignKey && params[def.foreignKey]) {
110110
task = DS.findAll(relationName, params, options).then(function (hasOnes) {
111111
return hasOnes.length ? hasOnes[0] : null;
112112
});
113113
}
114-
} else {
114+
} else if (instance[def.localKey]) {
115115
task = DS.find(relationName, instance[def.localKey], options);
116116
}
117117

0 commit comments

Comments
 (0)