我的理解是 AngularJS 服务类似于单例,因此只实例化一次。因此,它们对于存储“isUserLoggedIn”之类的内容应该很有用。但是,对于我的应用程序,该服务似乎在每次页面加载时运行。这会导致问题,因为它会重置值。
我究竟做错了什么?
我有一个这样的 index.html:
<body ng-app="MyApp">
<div class="container" ng-view=""></div>
</body>
我的服务如下所示:
MyApp.service('sharedProperties', function () {
var isLoggedIn = false;
return {
getProperty: function () {
return isLoggedIn;
},
setProperty: function(value) {
isLoggedIn = value;
}
}
})
问题是,每当我从一个路由/页面转到下一个路由/页面时,该服务就会不断被调用并将 isLoggedIn 设置为 false。
我尝试“强制”缓存以提高 index.html 不会重新加载的机会,从而导致服务启动但无济于事。
有任何想法吗?