|
843 | 843 | regInvokes[moduleName] = {}; |
844 | 844 | } |
845 | 845 | if(angular.isUndefined(regInvokes[moduleName][type])) { |
846 | | - regInvokes[moduleName][type] = []; |
| 846 | + regInvokes[moduleName][type] = {}; |
847 | 847 | } |
848 | | - var onInvoke = function(invokeName) { |
| 848 | + var onInvoke = function(invokeName, signature) { |
849 | 849 | newInvoke = true; |
850 | | - regInvokes[moduleName][type].push(invokeName); |
| 850 | + regInvokes[moduleName][type][invokeName].push(signature); |
851 | 851 | broadcast('ocLazyLoad.componentLoaded', [moduleName, type, invokeName]); |
852 | 852 | }; |
853 | | - if(angular.isString(invokeList) && regInvokes[moduleName][type].indexOf(invokeList) === -1) { |
854 | | - onInvoke(invokeList); |
855 | | - } else if(angular.isObject(invokeList)) { |
| 853 | + var signature = function(data) { |
| 854 | + if(angular.isArray(data)) { // arrays are objects, we need to test for it first |
| 855 | + return data.toString(); |
| 856 | + } else if(angular.isObject(data)) { // constants & values for example |
| 857 | + return JSON.stringify(data); |
| 858 | + } else { |
| 859 | + return data.toString(); |
| 860 | + } |
| 861 | + }; |
| 862 | + if(angular.isString(invokeList)) { |
| 863 | + if(angular.isUndefined(regInvokes[moduleName][type][invokeList])) { |
| 864 | + regInvokes[moduleName][type][invokeList] = []; |
| 865 | + } |
| 866 | + if(regInvokes[moduleName][type][invokeList].indexOf(signature(args[2][1])) === -1) { |
| 867 | + onInvoke(invokeList, signature(args[2][1])); |
| 868 | + } |
| 869 | + } else if(angular.isObject(invokeList)) { // decorators for example |
856 | 870 | angular.forEach(invokeList, function(invoke) { |
857 | | - if(angular.isString(invoke) && regInvokes[moduleName][type].indexOf(invoke) === -1) { |
858 | | - onInvoke(invoke); |
| 871 | + if(angular.isString(invoke)) { |
| 872 | + if(angular.isUndefined(regInvokes[moduleName][type][invoke])) { |
| 873 | + regInvokes[moduleName][type][invoke] = []; |
| 874 | + } |
| 875 | + if(regInvokes[moduleName][type][invoke].indexOf(signature(invokeList[1])) === -1) { |
| 876 | + onInvoke(invoke, signature(invokeList[1])); |
| 877 | + } |
859 | 878 | } |
860 | 879 | }); |
861 | 880 | } else { |
|
0 commit comments