0

Я новичок в angularjs, я работаю над приложением, которое использует процесс аутентификации на основе токенов, я создал службу проверки подлинности, через которую я получаю токен, но когда я использую эта услуга в другом контроллере я получаю $ инжектор: unpr ошибка любая помощь будет заметна.

Моя_служба: authService.js

var app = angular.module('loginFormApp', []); 
app.controller('loginFormCtrl', function ($scope, AuthService) { 
    $scope.loginCall = function() { 
     AuthService.authentication($scope.loginId, $scope.password).then(function (token) { 
      //AuthService.getToken();    
     }); 


    }; 
}); 

app.factory('AuthService', function ($http) { 
    var cachedToken; 
    return { 
     authentication: function (UserName, Password) { 
      return $http.post("http://103.19.89.152:8080/ccp-services/authenticate", { 
        'userName': UserName, 
        'password': Password 
       }) 
       .then(function (response) { 
         window.location.href = "http://192.168.1.148:2000/angular/dashboard.html"; 
         cachedToken = response.data.httpHeaders.h5cAuthToken; 
         return cachedToken; 
         // alert(token); 

        }, 
        // Error Handling 
        function (response) { 
         console.log(response.datas); 
        }); 

     }, 
     getToken: function() { 
      //alert(cachedToken); 
      return cachedToken; 

     } 

    } 
}); 

мой контроллер панели: dashboard.html

<script> 
     var app = angular.module('myApp', ['loginFormApp']); 
     app.controller('dashboardFormCtrl', function($scope, $http, AuthService) { 
      var config = { 
       headers: { 
        'h5cAuthToken': AuthService.getToken(), 
        'Accept': 'application/json;odata=verbose' 
       } 
      }; 
      //alert(config.headers.h5cAuthToken); 

      $http.get("http://103.19.89.152:8080/ccp-services/dashboardearnfit/fetch", config).success(function(data) { 

       $scope.dashboardData = data; 
           }); 


     }); 

    </script> 

он перенаправляет на страницу приборной панели, но веб-сервисы, которые я использую в том, что страницы не работает из-за об ошибке лексема

:

Navigated to http://192.168.1.148:2000/angular/dashboard.html 
dashboard.html:126 GET http://192.168.1.148:2000/angular/%7B%7BdashboardData.singleResult.userProfile.memberPhotoPath%7D%7D 404 (Not Found) 
dashboard.html:216 GET http://192.168.1.148:2000/angular/%7B%7Bactivityitem.participantPicPath%7D%7D 404 (Not Found) 
dashboard.html:289 GET http://192.168.1.148:2000/angular/%7B%7BchallengeItem.participantPicPath%7D%7D 404 (Not Found) 
jquery-migrate-1.1.0.min.js:1'//@ sourceURL' and '//@ sourceMappingURL' are deprecated, please use '//# sourceURL=' and '//# sourceMappingURL=' instead. 
angular.js:10765 GET http://103.19.89.152:8080/ccp-services/dashboardearnfit/fetch 403 (Forbidden)(anonymous function) @ angular.js:10765r @ angular.js:10558g @ angular.js:10268(anonymous function) @ angular.js:14792$eval @ angular.js:16052$digest @ angular.js:15870$apply @ angular.js:16160(anonymous function) @ angular.js:1679e @ angular.js:4523c @ angular.js:1677yc @ angular.js:1697Zd @ angular.js:1591(anonymous function) @ angular.js:29013b @ angular.js:3057If @ angular.js:3346d @ angular.js:3334 
+0

Можете ли вы разместить полный код ошибки? –

+0

@Itsik, у меня есть сообщение об ошибке с сообщением –

+0

Попробуйте создать «dashboardFormCtrl» без тегов

0

Похоже, вы вводите модуль, который недоступен. В этом случае это выглядит так: «AuthService» недоступен, когда вы пытаетесь ввести в качестве зависимости.

Вы указали два отдельных приложения (зависимости в этом случае не будут использоваться).

1: Это модуль «сеттер» с синтаксисом массива.

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

2: Это также модуль с синтаксисом массива.

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

Изменить 2: на приемник это означает, что приложения будут обмениваться модулями.

var app = angular.module('loginFormApp'); 

Или реструктурируйте свои зависимости модулей/приложений.

+0

У меня есть две разные страницы login.html и dashboard.html, поэтому мне нужно использовать одинаковое имя модуля на обеих страницах, таких как var app = angular.module ('myApp' , []); –

+0

Я отредактировал в authService.js и login.html и сделаю то же имя модуля в обоих файлах, которые называются myApp, см. Обновленный authService.js –

+0

. Сначала: 404 ответа: http://192.168.1.148:2000/angular/%7B % 7BdashboardData.singleResult.userProfile.memberPhotoPath% 7D% 7D. % 7B означает '{'. Я предполагаю, что у вас есть такое изображение: '' использовать 'ng-src' вместо:' '. Второй 403 означает Запретить, проверьте журналы вашего сервера. – Walfrat

0

Предположив вы использовали нг-приложение, как это:

ng-app="myApp" 

Затем необходимо связать модуль с помощью зависимостей:

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

Или инжектор модуля «MYAPP» ничего не будет знать о loginFormApp

+0

Я свяжу модуль с зависимостями, поскольку он удаляет ошибку $ injector: unpr, но ошибка 403 приходит, поскольку я обновляю код –

+0

, когда он переходит на страницу dashboard.html, но функция getToken() возвращает неопределенный объект –

0

Вы можете ввести 'AuthService', как показано ниже:

var app = angular.module('loginFormApp', []); 
app.controller('loginFormCtrl',['$scope', 'AuthService', function ($scope, AuthService) { 
    $scope.loginCall = function() { 
     AuthService.authentication($scope.loginId, $scope.password).then(function (token) { 
      //AuthService.getToken();    
     }); 


    }; 
}]); 

app.factory('AuthService', function ($http) { 
    var cachedToken; 
    return { 
     authentication: function (UserName, Password) { 
      return $http.post("http://103.19.89.152:8080/ccp-services/authenticate", { 
        'userName': UserName, 
        'password': Password 
       }) 
       .then(function (response) { 
         window.location.href = "http://192.168.1.148:2000/angular/dashboard.html"; 
         cachedToken = response.data.httpHeaders.h5cAuthToken; 
         return cachedToken; 
         // alert(token); 

        }, 
        // Error Handling 
        function (response) { 
         console.log(response.datas); 
        }); 

     }, 
     getToken: function() { 
      //alert(cachedToken); 
      return cachedToken; 

     } 

    } 
}); 
+0

@ashish kumar - PLZ проверить выше кода. –

 Смежные вопросы

  • Нет связанных вопросов^_^