Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 要覆盖另一个服务中创建的angularJS对象,但在ctrl+;应用中的f5_Javascript_Angularjs - Fatal编程技术网

Javascript 要覆盖另一个服务中创建的angularJS对象,但在ctrl+;应用中的f5

Javascript 要覆盖另一个服务中创建的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) {

在angular js中我有两个服务,一个是用默认值声明对象,另一个是为这些对象分配新值。在控制器中重写后,我可以使用此对象,但当我刷新浏览器(Ctrl+F5)时,它会重新初始化为其默认值

请帮忙

这很好,但在ctrl+F5之后,它再次设置为false

    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
中的值即使在刷新页面后也会保留在同一浏览器选项卡中