gpt4 book ai didi

angularjs - 为什么每次加载新页面时我的 angularjs 服务都会重新加载?

转载 作者:行者123 更新时间:2023-12-05 07:49:14 25 4
gpt4 key购买 nike

我正在尝试在服务中保存季节标记,但每次我加载新页面时,服务器似乎都会自行重置

angular.service.js:

var appBooking = angular.module('Booking');
appBooking.service('WebService', ['$http', '$rootScope', function ($http, $rootScope) {

this.setToken=function (tkn){
$rootScope.token=tkn;
};

this.getToken=function () {
return($rootScope.token);
};

this.login = function (user, password) {
var dato={'usuario':{'username': user, 'password': password}};
return $http.post('http://localhost:8080/Booking/login',dato);
};
}]);

angular_apps.js:

angular.module('Booking', []);

angular_controllers.js:

var appBooking = angular.module('Booking');

appBooking.controller('CtrlLogin', ['$scope', 'WebService', function ($scope, WebService) {
var self = this;


self.login = function (user, password) {
WebService.login(user, password)
.then(function (jsonObject) {
console.log("Login success");
location = "profilepage.html";
token = jsonObject.data.token;
WebService.setToken(token);
}, function errorCallBack(response){
console.log("Login failed");
});
};
}]);

Controller LoginController 附加到登录表单并正确设置值,但是当我加载新页面时 $rootScope.token 未定义。

在 html 页面中,我加载了一个在与 LoginController 相同的文档中定义的 Controller ,例如:

appBooking.controller('CtrlProfile', ['$scope', 'WebService', function ($scope, WebService) {
//content here
}]);

在每个 html 文件中的每个标签之前,我加载以下脚本

<script src="../js/angular.js"></script>
<script src="../js/angular_apps.js"></script>
<script src="../js/angular_services.js"></script>
<script src="../js/angular_controllers.js"></script>

我做错了什么?

最佳答案

如果 AngularJS 不会重新加载您的服务,您需要确保 AngularJS 正在处理所有必要的应用程序内路由。您如何处理页内路由更改?对于您的代码:

var appBooking = angular.module('预订');

appBooking.controller('CtrlLogin', ['$scope', 'WebService', function ($scope, WebService) {
var self = this;


self.login = function (user, password) {
WebService.login(user, password)
.then(function (jsonObject) {
console.log("Login success");
// What is this line supposed to do????
location = "profilepage.html";
token = jsonObject.data.token;
WebService.setToken(token);
}, function errorCallBack(response){
console.log("Login failed");
});
};
}]);

您分配了位置。如果它用于更改浏览器位置,并且 Angular JS 应用程序未处理该浏览器位置更改,则浏览器页面将重新加载,并且您的 Angular JS 应用程序将重置。

关于angularjs - 为什么每次加载新页面时我的 angularjs 服务都会重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37639468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com