Skip to content

Commit

Permalink
fix: keep track of components signatures instead of just the names
Browse files Browse the repository at this point in the history
Fixes #120
  • Loading branch information
ocombe committed Jan 28, 2015
1 parent ed200fa commit 6bbaed9
Showing 1 changed file with 27 additions and 8 deletions.
35 changes: 27 additions & 8 deletions src/ocLazyLoad.js
Original file line number Diff line number Diff line change
Expand Up @@ -843,19 +843,38 @@
regInvokes[moduleName] = {};
}
if(angular.isUndefined(regInvokes[moduleName][type])) {
regInvokes[moduleName][type] = [];
regInvokes[moduleName][type] = {};
}
var onInvoke = function(invokeName) {
var onInvoke = function(invokeName, signature) {
newInvoke = true;
regInvokes[moduleName][type].push(invokeName);
regInvokes[moduleName][type][invokeName].push(signature);
broadcast('ocLazyLoad.componentLoaded', [moduleName, type, invokeName]);
};
if(angular.isString(invokeList) && regInvokes[moduleName][type].indexOf(invokeList) === -1) {
onInvoke(invokeList);
} else if(angular.isObject(invokeList)) {
var signature = function(data) {
if(angular.isArray(data)) { // arrays are objects, we need to test for it first
return data.toString();
} else if(angular.isObject(data)) { // constants & values for example
return JSON.stringify(data);
} else {
return data.toString();
}
};
if(angular.isString(invokeList)) {
if(angular.isUndefined(regInvokes[moduleName][type][invokeList])) {
regInvokes[moduleName][type][invokeList] = [];
}
if(regInvokes[moduleName][type][invokeList].indexOf(signature(args[2][1])) === -1) {
onInvoke(invokeList, signature(args[2][1]));
}
} else if(angular.isObject(invokeList)) { // decorators for example
angular.forEach(invokeList, function(invoke) {
if(angular.isString(invoke) && regInvokes[moduleName][type].indexOf(invoke) === -1) {
onInvoke(invoke);
if(angular.isString(invoke)) {
if(angular.isUndefined(regInvokes[moduleName][type][invoke])) {
regInvokes[moduleName][type][invoke] = [];
}
if(regInvokes[moduleName][type][invoke].indexOf(signature(invokeList[1])) === -1) {
onInvoke(invoke, signature(invokeList[1]));
}
}
});
} else {
Expand Down

0 comments on commit 6bbaed9

Please sign in to comment.