2017-03-01 1 views
1

Ich bin ein Neuling in Angular, so werde ich mich freuen, wenn Sie mir helfen können. Ich habe meine Logik auf 2 Dateien (Controller und Dienste) aufgeteilt. Meine Leistungen Code:

(function() { 
    'use strict';  
    angular 
     .module('app', []) 
     .factory('authservice', authservice); 

    authservice.$inject = ['$http', '$logger']; 

    function authservice($http, $logger) { 
     return { 
      signInOwner: signInOwner, 
      signUpOwner: signUpOwner 
     }; 

     function signInOwner(owner) { 

     } 

     function signUpOwner(owner) { 

     } 
    }; 
})(); 

Mein Controller-Code:

(function() { 
    'use strict'; 

    angular 
     .module('app', []) 
     .controller('SignUpController', SignUpController); 

    SignUpController.$inject = ['authservice']; 

    function SignUpController (authservice) { 
    var vm = this; 
    } 
})(); 

Ich schließe meine services.js vor controller.js aber immer noch Fehler zu falschen authservice Abhängigkeiten

angular.js:14362 Error: [$injector:unpr]

Könnten Sie Hilf mir bitte?

Antwort

2

Mit diesem syntax angular.module('app', []) sind Sie die Modulerstellung überschreiben. Sie sollten stattdessen angular.module('app') verwenden, um es abzurufen.

[] sollte nur einmal verwendet werden: bei der Erstellung des Moduls.


Vom Angular module doc:

Beware that using angular.module('myModule', []) will create the module myModule and overwrite any existing module named myModule . Use angular.module('myModule') to retrieve an existing module.

+0

Vielen Dank! – Molkrot

1

In Ihrem Controller-Code ersetzen:

angular 
     .module('app', []) 
     .controller('SignUpController', SignUpController); 

für

angular 
     .module('app') // notice the lack of [] here!! 
     .controller('SignUpController', SignUpController); 

Dies liegt daran, mit dem [] es bedeutet, du bist Erstellen der Modul und ohne es bedeutet, dass Sie das Modul lokalisieren. Da das Modul erstellt wurde, wenn Sie Ihren Dienst erstellen müssen, müssen Sie ihn nicht erneut erstellen. Suchen Sie ihn einfach.

Verwandte Themen