这是我的工厂
app.factory('userFactory', function(localStorageService, $http, $rootScope) {
var myUser = {};
myUser.isCrazy = false;
return myUser;
});
当用户登录时,在登录控制器中,我从数据库中获取了一些数据,并使用
if/else
决定了该用户是否发疯,所以我有 app.controller('loginController', ['$scope', 'localStorageService', '$location','userFactory','$rootScope',
function ($scope, localStorageService, $location, userFactory, $rootScope ) {
userFactory.isCrazy = true;
}
]);
然后,在另一个页面的控制器中,我根据
userFactory.isCrazy
显示/隐藏divs(也是true / false)。app.controller('anotherPageController' ,['$scope', '$filter', '$rootScope', 'userFactory','localStorageService',
function ($scope, $filter, $rootScope, userFactory, localStorageService) {
if(userFactory.isCrazy == true){
$scope.myMessage = true;
}
}
]);
$scope.myMessage
的html是<div ng-hide="myMessage">
这是我的问题。
登录后,
isCrazy
变为true。当我第一次访问该页面时,根据anotherPageController
,该消息是隐藏的,isCrazy
仍然为true。都好。如果我单击“刷新”,
isCrazy
将返回false,并且消息不再隐藏。我在这里想念什么?为什么
isCrazy
不能保持其价值?谢谢
最佳答案
是的,它不保存值。为此,您必须至少使用本地存储或会话存储来保留这些值。