2016-05-05 7 views
0

Ich versuche eine Fabrik zu bekommen, die in einer AngularJS-App funktioniert, an der ich gerade arbeite. Im Folgenden ist mein verdummt Werkscode:

angular.module('workhelpr.components.services.gridService', []) 
.factory('gridServiceApi', function() { 
    return { test:5 }; 
}); 

Als ich dieses Werk in einen Controller injizieren wie folgt:

mainCtrl.$inject = ['gridServiceApi']; 
function mainCtrl(gridServiceApi) { 
    var $ctrl = this; 

    //gridServiceApi.test(); 

} 

Ich erhalte die folgende Fehlermeldung im Browser-Konsole:

angular.js:13550 Error: [$injector:undef] Provider 'gridServiceApi' must return a value from $get factory method. 

Ich habe die ganze Zeit gegooglet und es gibt eine Menge Fragen, die sehr ähnlich sind. Bei den meisten handelte es sich um Probleme, bei denen die Factory kein Objekt zurückgegeben hat oder der beabsichtigte Rückgabewert in einer Zeile unterhalb des Schlüsselworts return lag. Ich habe nichts gefunden, was wirklich beantwortet, warum das hier passiert.

+0

Was passiert, wenn Sie die Fabrik wie '.factory ('gridServiceApi', function() { return {test: function() {return 5;}}; });' und verwenden Sie es wie in Ihrem Controller ('gridServiceApi.test();') –

+0

Es gibt genau den gleichen Fehler zurück. – APalmer

+0

Ich habe das grundlegende Beispiel von 'ControllerAs' aus angularjs Dokumentation bearbeitet und die Factory wie Sie hinzugefügt (https://plnkr.co/edit/30swPWudsuDfKgmuVsI5?p=preview) Es funktioniert wie ein Charme. Sind Sie sicher, dass Sie auf die Factory in 'workhelpr.components.services.gridService' verweisen und dass es sich nicht um eine andere Factory mit demselben Namen in einem anderen Modul handelt? - Haben Sie das Modul "workhelpr.components.services.gridService" in Ihr App-Modul aufgenommen? –

Antwort

0

Der Pfad zu meiner Datei service.js ist falsch. Das war verwirrend, da ich erwartet hätte, dass es einen unbekannten Providerfehler auslösen würde.

Verwandte Themen