2017-03-23 2 views
0

Ich erstelle eine Anwendung mit angularjs, ich habe zwei Controller und einen Dienst (alle in getrennten Dateien). Mein Problem ist, dass ich den Dienst nicht in die Controller injizieren kann. Ich benutzte den Dienst in der gleichen Datei wie der Controller und es funktionierte, aber ich möchte es in getrennten Dateien, um Daten zwischen den Controllern zu teilen.Inject-Dienst in Controllern mit angularjs

Dies ist einer meiner Controller

 var app = angular.module('cloudpear', ['ngRoute','ServiceUser']); 

    app.controller('login',['$scope','$location','$window', function(ServiceUser,$scope,$location,$window){ 
..... 
}]); 

Das ist mein Service

var app = angular.module('service', []); 

app.factory('ServiceUser',function(){ 
    var user=[]; 

    return{ 
     add: add, 
     get: get 
    } 

    function add(item){ 
     user.push(item); 
    } 

    function get(){ 
     return user; 
    } 

    return user; 
}); 

ich diesen Fehler:

nicht erfasste Fehler: [$ Injektor: modulerr] http://errors.angularjs.org/1.6.4-build.5327+sha.233f47b/ $ Injektor/modulerr ... 20 (https% 3A% 2F% 2Fcode.angularjs.org% 2Fsnapshot% 2Fangular.min.js% 3A22% 3A179)

Können Sie mir sagen, was ich falsch mache, ich habe überall gesucht und mehrere Lösungen versucht, aber nichts hat funktioniert!

+0

Es gibt den gleichen Fehler –

Antwort

2

Da Sie für den Service ein separates Modul definiert haben, müssen Sie das Modul service in die Moduldeklaration cloudpear injizieren.

var app = angular.module('cloudpear', ['ngRoute','service']); 
               //^^^^^^^^^^ instead of ServiceUser 

brauchen Dann Service in Controller

app.controller('login',['ServiceUser', '$scope','$location','$window',function(ServiceUser, $scope,$location,$window){ 
+0

zu injizieren, was die von der vorherigen unterscheidet Antwort ist? – vict

+0

@vict, Geht die vorherige Antwort auf 'angular.module ('cloudpear', ['ngRoute', 'service']);'? – Satpal

+1

Das funktioniert, vielen Dank! –

Verwandte Themen