在app.js中我有一个我在两个文件/控制器中使用的变量:
var app = angular.module('appDemo', ['MainControllers', 'MainServices'])
.constant('myConfig', {
'backend': 'http://localhost:1236'
})
.service('mailService', function() {
var mail = {
value: 'hello world'
};
var getMail = function() {
return mail;
}
var setMail = function(email) {
mail.value = email;
}
return {
getMail: getMail,
setMail: setMail
};
);
从controllerOne设置变量很好:
angular.module('MainControllers')
.controller('MemberController', function ($scope, mainService, appDemo) {
window.onbeforeunload = function (e) {
appDemo.setMail('test@test.com');
};
但是当我从controllerTwo获取设置变量时,我获得了默认值:
angular.module('MainControllers')
.controller('EmailController', function($scope, appDemo) {
$scope.mailAddress = appDemo.getMail();
});
每个控制器都在单独的文件。
出了什么问题?
答案 0 :(得分:1)
这可能是因为正在重新加载服务本身,因为我可以看到您正在onbeforeunload
的第一个控制器中设置邮件。
服务无法在窗口重新加载或页面刷新时保留。每次重新加载页面时都会重新加载它们。
如果要保留值,请尝试将其放在localStorage或sessionStorage中。