Javascript 要覆盖另一个服务中创建的angularJS对象,但在ctrl+;应用中的f5
在angular js中我有两个服务,一个是用默认值声明对象,另一个是为这些对象分配新值。在控制器中重写后,我可以使用此对象,但当我刷新浏览器(Ctrl+F5)时,它会重新初始化为其默认值 请帮忙 这很好,但在ctrl+F5之后,它再次设置为falseJavascript 要覆盖另一个服务中创建的angularJS对象,但在ctrl+;应用中的f5,javascript,angularjs,Javascript,Angularjs,在angular js中我有两个服务,一个是用默认值声明对象,另一个是为这些对象分配新值。在控制器中重写后,我可以使用此对象,但当我刷新浏览器(Ctrl+F5)时,它会重新初始化为其默认值 请帮忙 这很好,但在ctrl+F5之后,它再次设置为false var appl = angular.module('app'); appl.service('service1', ['$rootScope', '$modal', function($rootScope, $modal) {
var appl = angular.module('app');
appl.service('service1', ['$rootScope', '$modal', function($rootScope, $modal) {
this.prefs = {
rememberMe: false,
popIt: function() {
$modal.open({
templateUrl: "views/flag-message.html",
controller: "flagMessageCtrl",
});
}
};
}]);
var appl = angular.module('app');
appl.service('service2', ['$rootScope', '$scope', 'service1', function($rootScope, $scope, service1) {
service1.prefs.rememberMe = true;
}]);
var appl = angular.module('app');
appl.controller('DemoCtrl', ['$scope', 'Restangular', 'service1', function ($scope, Restangular, service1) {
alert(service1.prefs.rememberMe);
}]);
是的,一旦你刷新页面,它就会被重置,当你刷新一个页面时,所有的JavaScript上下文都会丢失 您可以使用localStorage,它将一直保留,直到您关闭浏览器
$localStorage.item = []
这是预期的行为。当你按ctrl+f5时,你的整个angular应用程序将被重新加载。如果您希望保留某些设置,那么应该使用某种允许您这样做的库
另一个很好的选择是,它允许您使用不同的浏览器存储(本地、会话和cookie)在会话之间保存值/设置。您可以在浏览器中存储数据,而无需设置cookie,并通过将值存储在
窗口中来避免在angular js中写入长代码。name
存储在window.name
中的值即使在刷新页面后也会保留在同一浏览器选项卡中