Javascript 为什么AngularJS服务在从一条路线导航到另一条路线时未定义?
我对AngularJS有意见。我正在尝试对用户进行身份验证,当服务器返回响应时,我使用一个服务来存储用户状态,因为他是否是admin。到目前为止,一切都很好,但当我从一条路线导航到另一条路线时,服务会丢失其数据并变得未定义。你知道怎么解决吗 服务内容如下: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) {
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;
}
}
})