2016-11-18 3 views
0

Для того, чтобы сохранить значение при обновлении [F5] $rootScope мы можем использовать $route.reload в контроллере, как показано ниже:

$scope.reloadCtrl = function(){ console.log('reloading...'); $route.reload(); } 

Как я используя так много контроллеров, есть ли способ использовать обычно в app.config()?

ответ

1

Обновляя страницу, вы вытрите свой корнескоп из памяти. Ваше приложение перезагрузится.

Вы можете использовать какое-то хранилище. Таким образом, вы можете сохранить предпочтение пользователей и использовать его снова, когда он вернется к вашему приложению.

Вы можете использовать, например, $ cookies или sessionStorage/localStorage.

Если вы хотите, чтобы обнаружить обновления на вашем app.run вы можете сделать по этому пути:

В app.run() блок Inject зависимость '$' окна и добавить:

app.run(['$rootScope', '$location', '$window',function($rootScope,$location, $window) { 
    window.onbeforeunload = function() { 
     // handle the exit event 
    }; 

    // you can detect change in route 

    $rootScope.$on('$routeChangeStart', function(event, next, current) { 
     if (!current) { 
      // insert segment you want here 
     } 
    }); 

}]);` 
0

Вы можете использовать угловую завод вместо того, чтобы иметь все значения через контроллеры использовать следующий код

 var app = angular.module('myApp', []); 
     app.factory('myService', function() { 
      var v1; 
      var v2; 
      var v3; 
     return{ 
      v1:v1, 
      v2:v2, 
      v3:v3 
    }); 
     app.controller('Ctrl1', function($scope,myService) { 


     }); 
     app.controller('Ctrl2', function($scope,myService) { 


     }); 

Если у мы используем константы в $ rootscope u, можем даже использовать это

app.constant('myConfig', 
      { 
      v1:v1, 
      v2:v2, 
      v3:v3 
      }); 
Смежные вопросы