2016-05-31 4 views
0

Ich bin neu in AngularJS und ich habe alles Setup in Winkel js aber wenn ich werde neue Authentifizierungsdienst hinzufügen, dann ich bin immer Fehler wie folgt aus:Erste Fehler beim benutzerdefinierten Dienst in Winkel js Hinzufügen

enter image description here

ich habe Service sessionService.js für Satz genannt erstellen und verwalten Benutzer Wert in Session
ich haben Service authService.js zur Überprüfung der Benutzerauthentifizierung und Benutzernamen erhalten genannt erstellen und es etc

Hier ist sessionService.js

'usre strict'; 

app.factory('sessionService', ['$http', function($http){ 
    return { 
     set : function(key,value){ 
      return sessionStorage.setItem(key,value); 
     }, 
     get : function(key){ 
      return sessionStorage.getItem(key); 
     }, 
     destroy : function(key){ 
      return sessionStorage.removeItem(key); 
     } 
    } 
}]) 

Hier ist authService.js

'use strict'; 

app.factory('authService', ['$http','sessionService', function($http,sessionService){ 
     var loggedIn; 
    var isAdmin; 
    var username; 
    var id; 

    var checkLogin = function() { 
     // Create a custom deferred 
     var defer = $q.defer(); 

     if(loggedIn != undefined) { 
      // Resolve your deferred with the value of logged in 
      defer.resolve(loggedIn); 
     } else { 
      setUserData().then(function (data) { 
       loggedIn = data.logged; 
       if(loggedIn) { 
        isAdmin = data.is_admin; 
        username = data.username; 
        id = data.id; 
        defer.resolve(loggedIn); 
       } else { 
        defer.reject(); 
       } 
      }, function() { 
       defer.reject(); 
      }); 
     } 

     return defer.promise; 
    } 

    var returnUsername = function() { 
     // Create a custom deferred 
     var defer = $q.defer(); 

     if(username != undefined) { 
      // Resolve your deferred with the value of logged in 
      defer.resolve(username); 
     } else { 
      setUserData().then(function (data) { 
       loggedIn = data.logged; 
       if(loggedIn) { 
        username = data.username; 
        defer.resolve(username); 
       } else { 
        defer.reject(); 
       } 
      }, function() { 
       defer.reject(); 
      }); 
     } 

     return defer.promise; 
    } 

    var returnId = function() { 
     // Create a custom deferred 
     var defer = $q.defer(); 

     if(id != undefined) { 
      // Resolve your deferred with the value of logged in 
      defer.resolve(id); 
     } else { 
      setUserData().then(function (data) { 
       loggedIn = data.logged; 
       if(loggedIn) { 
        id = data.id; 
        defer.resolve(id); 
       } else { 
        defer.reject(); 
       } 
      }, function() { 
       defer.reject(); 
      }); 
     } 

     return defer.promise; 
    } 

    var setUserData = function(callback) { 
     return $http.get('/api/checkLogin'); 
    } 

    return { 
     loggedIn: function() { return checkLogin(); }, 
     username: function() { return returnUsername(); }, 
     id: function() { return returnId(); }, 
    } 
}]) 

ich diese beiden Service in index.html

<script src="js/app.js"></script> 
    <script src="js/config.js"></script> 
    <script src="js/config.lazyload.js"></script> 
    <script src="js/config.router.js"></script> 
    <script src="js/main.js"></script> 
    <script src="js/services/ui-load.js"></script> 
    <script src="js/services/sessionService.js"></script> 
    <script src="js/services/authService.js"></script> 
    <script src="js/filters/fromNow.js"></script> 
    <script src="js/directives/setnganimate.js"></script> 
    <script src="js/directives/ui-butterbar.js"></script> 
    <script src="js/directives/ui-focus.js"></script> 
    <script src="js/directives/ui-fullscreen.js"></script> 
    <script src="js/directives/ui-jq.js"></script> 
    <script src="js/directives/ui-module.js"></script> 
    <script src="js/directives/ui-nav.js"></script> 
    <script src="js/directives/ui-scroll.js"></script> 
    <script src="js/directives/ui-shift.js"></script> 
    <script src="js/directives/ui-toggleclass.js"></script> 
    <script src="js/controllers/bootstrap.js"></script> 

auch hinzugefügt haben und in app.js

'use strict'; 


angular.module('app', [ 
    'ngAnimate', 
    'ngAria', 
    'ngCookies', 
    'ngMessages', 
    'ngResource', 
    'ngSanitize', 
    'ngTouch', 
    'ngStorage', 
    'ui.router', 
    'ui.bootstrap', 
    'ui.utils', 
    'ui.load', 
    'sessionService', 
    'authService', 
    'ui.jq', 
    'oc.lazyLoad', 
    'pascalprecht.translate', 
]); 

Ich brauche Hilfe zur Lösung dieses Problems.
Ich benutze Angulr Bootstrap Admin Panel dafür.
Jede Hilfe wäre willkommen.

Danke

+0

Fehler beim Instanziieren eines Modulfehlers? –

+0

Ja, das ist, was ist falsch angezeigt, aber ich bekomme es nicht so –

+0

Sie sind nicht hinzufügen Referenz für 'angular.js' –

Antwort

0

Der Fehler ist, dass Sie sessionService und authService als Modul behandeln und sie als Abhängigkeit in Ihrem app geladen. Sie sind Dienstleistungen und nicht die Module. Selbst der Fehler sagt das Gleiche. Die Dienste können in andere Dienste eingefügt werden, können jedoch nicht als Modulabhängigkeiten geladen werden.

ändern Sie den Code in app.js, um die Dienste zu entfernen, wie unten:

'use strict'; 


var app = angular.module('app', [ 
    'ngAnimate', 
    'ngAria', 
    'ngCookies', 
    'ngMessages', 
    'ngResource', 
    'ngSanitize', 
    'ngTouch', 
    'ngStorage', 
    'ui.router', 
    'ui.bootstrap', 
    'ui.utils', 
    'ui.load', 
    'ui.jq', 
    'oc.lazyLoad', 
    'pascalprecht.translate', 
]); 
+0

Ja, ich habe dies getan, aber jetzt zeigt es wie dieser Fehler: ** Uncaught Fehler: [$ injector: modulerr] Fehler beim Instanziieren der Modul-App aufgrund von: Fehler: [$ injector: unpr] Unbekannter Provider: authService ** –

+0

Dieser Fehler bedeutet, dass in Ihrem 'authService'-Code ein Syntaxfehler aufgetreten ist. Können Sie das überprüfen oder eine Plunkr mit Ihrem vollständigen Code erstellen? –

+0

Check this: https://plnkr.co/edit/PNQM7VnWxLlBiLI9KdO5?p=info –

0

Fügen Sie Ihren app.js Skript nach alle anderen.

+0

in index.html ?? –

+0

ja, in index.html –

+0

nicht funktioniert es gibt mir anderen Fehler nicht gefunden von anderen Modul, so kann ich es endlich nicht hinzufügen –

0

Wurde Ihre App global instanziiert, um in anderen js-Dateien verwendet zu werden? Lassen Sie uns sagen

App.js

var app = angular.module('app',[dependencies]); 
$(function(){ 
//Other code 
}()); 

Und mit instanziierten App in anderen js Dateien.