usiłuję do przechowywania danych w moich usług podobnych do odpowiedzi na:Wyczyść dane serwisowe w angularjs
Processing $http response in service
app.factory('myService', function($http) { var promise; var myService = { async: function() { if (!promise) { // $http returns a promise, which has a then function, which also returns a promise promise = $http.get('test.json').then(function (response) { // The then function here is an opportunity to modify the response console.log(response); // The return value gets picked up by the then in the controller. return response.data; }); } // Return the promise to the controller return promise; } }; return myService; }); app.controller('MainCtrl', function(myService,$scope) { $scope.clearData = function() { $scope.data = {}; }; $scope.getData = function() { // Call the async method and then do stuff with what is returned inside our own then function myService.async().then(function(d) { $scope.data = d; }); }; });
Jednak zauważyłem, że dane w moich usług utrzymuje się nawet po wylogowaniu . W ten sposób mogłem zalogować się jako zupełnie inny użytkownik i zobaczyć dane, których nie powinienem widzieć.
Jak mogę wyczyścić dane po wylogowaniu? Oczywiście mogę ręcznie wyczyścić wszystko we wszystkich moich usługach, ale szukam bardziej ogólnego podejścia, takiego jak "wyczyść wszystkie dane użytkownika". Próbowałem wymusić odświeżenie strony i działa, ale nie podoba mi się flash, który produkuje.
edit: Kod z przykładu
_how_ dokładnie "podobny" chociaż? (pokaż swój kod) Jeśli robisz to dobrze, tak naprawdę nie powinieneś mieć żadnych trwałych danych w serwisie. – thescientist
Czy możesz udostępnić swój kod dostępu? – Chandermani
Powinienem przeformułować moje pytanie, z wylogowaniem mam na myśli moją własną funkcję wylogowania, która po prostu usuwa niektóre dane użytkownika. Usługi są nadal tworzone i zawierają te same rzeczy, co przed wylogowaniem. – user1354603