Javascript 为什么AngularJS服务在从一条路线导航到另一条路线时未定义?

Javascript 为什么AngularJS服务在从一条路线导航到另一条路线时未定义?,javascript,angularjs,angularjs-scope,angularjs-service,Javascript,Angularjs,Angularjs Scope,Angularjs Service,我对AngularJS有意见。我正在尝试对用户进行身份验证,当服务器返回响应时,我使用一个服务来存储用户状态,因为他是否是admin。到目前为止,一切都很好,但当我从一条路线导航到另一条路线时,服务会丢失其数据并变得未定义。你知道怎么解决吗 服务内容如下: angular.module("AccApp") .service('Session', function(){ this.create = function (userName, userRole) {

我对AngularJS有意见。我正在尝试对用户进行身份验证,当服务器返回响应时,我使用一个服务来存储用户状态,因为他是否是admin。到目前为止,一切都很好,但当我从一条路线导航到另一条路线时,服务会丢失其数据并变得未定义。你知道怎么解决吗

服务内容如下:

angular.module("AccApp")

    .service('Session', function(){
        this.create = function (userName, userRole) {
            this.userName = userName;
            this.userRole = userRole;
        };

        this.destroy = function () {
            this.userName = null;
            this.userRole = null;
        };

        return this;
    }); 
以下是设置会话服务的身份验证服务:

angular.module("AccApp")

    .factory('AuthService',['$http','$cookieStore','Session','$q', function($http, $cookieStore, Session, $q){

        var authService = {};
        var AuthentoctionControllerUrl = "http://localhost:18678/api/Authentication/";

        authService.login = function(credentials) {
            var deferred = $q.defer();

           return $http.post(AuthentoctionControllerUrl, credentials).success(function(response){
               $cookieStore.put('AuthorizationHeader', response.Token);
               Session.create(response.Name, response.IsAdmin);
               deferred.resolve(response);

           }).error(function(error){

               deferred.reject(error);
           });
            return deferred.promise;
        };

        authService.logout = function () {
            $cookieStore.remove('AuthorizationHeader');
        };

        authService.isAuthenticated = function () {
            if(Session.userName) return true;
            else return false;
        };

        authService.isAuthorized = function (authorizedRole) {
            if(authService.isAuthenticated() && authorizedRole <= Session.userRole) return true;
            else return false;
        };

        return authService;
    }]);

如果要在页面之间导航时存储数据,可以使用以下代码:

将其添加到service.js

.service('sharedProperties', function () {
    var property = null;
    return {
        getModel: function () {
            return property;
        },
        setModel: function(value) {
            property = value;
        }
    }
})

很抱歉,但是你至少应该试着正确拼写主题…看到这个了吗
.service('sharedProperties', function () {
    var property = null;
    return {
        getModel: function () {
            return property;
        },
        setModel: function(value) {
            property = value;
        }
    }
})