Ich benutze die $ cacheFactory, um einige Daten in meinem Cache zu speichern und alles funktionierte sehr gut bis heute, dass ich beschlossen habe, meine cacheFactory in eine einzige Klasse namens MyFactory.js zu trennen. Jetzt bin immer ich den Fehler:AngularJS - Fehle ich etwas in dieser Fabrikspritze?
TypeError: tableCacheFactory is not a function
Weil es die Injektion als ein einfaches Verfahren oder etwas nehmen, weiß jemand, ob ich etwas fehlt hier bin?
main.js
angular.module('main-component',
['my-component',
'my-cache-factory'
]);
MyFactory.js
angular.module('my-cache-factory', [])
.factory('tableCacheFactory', [
'$cacheFactory', function ($cacheFactory) {
return $cacheFactory('my-cache');
}
]);
MyService.js
angular.module('my-component', [])
.factory('my-component-service',
['$rootScope',
'$http',
'$q',
'tableCacheFactory',
function ($rootScope, $http, $q, tableCacheFactory) {
function getMyData (prodNro) {
var deferred = $q.defer();
var promise = deferred.promise;
var dataCache = tableCacheFactory.get('tablecache');
if (!dataCache) {
dataCache = tableCacheFactory('tablecache'); // TypeError: tableCacheFactory is not a function
}
var summaryFromCache = dataCache.get('tablecache' + prodNro);
if (summaryFromCache) {
deferred.resolve(summaryFromCache);
} else {
$http({
method: ...
data : ...
url: ...
}).success(function (data, status, headers, config) {
var objectResult = {
"data": data,
"status": status,
"headers": headers,
"config": config
}
if (data.response) {
// Save to cache
dataCache.put('tablecache'+prodNro, objectResult);
}
deferred.resolve(objectResult);
}).error(function (data, status, headers, config) {
...
});
}
return promise;
}
Bitte beachten Sie meine Bearbeitungsfrage und den Kommentar für die Antwort oben. – RicardoGonzales