У меня есть данные api, они отображаются и отображаются на веб-сайте с помощью AngularJS. Я просто пытаюсь хранить данные api в локальном хранилище, а не извлекать данные из api каждый раз. Поэтому я закодировал вот так:
if($window.localStorage.cityApi){
$scope.cities = JSON.parse($window.localStorage.cityApi);
}
AddCityService.init(function(city_response) {
$scope.loading = false;
$scope.cities = city_response.data;
$scope.city = JSON.parse(JSON.stringify(getCity($stateParams._id)));
$window.localStorage.cityApi = JSON.stringify($scope.cities);
});
Но проблема в том, что она берет данные из api, а не из локального хранилища. Если я прокомментирую код получения ответа от api. он будет извлекаться из локального хранилища. Если я также упоминаю api вместе с локальным, он будет принимать данные из api. Я проверил в хром инструменты для разработчиков. Я не могу использовать другое условие для этого. Потому что у меня есть страницы, чтобы добавить город и показать добавленные города. если я добавлю город один раз, это будет перенаправление на страницу, чтобы показать добавленные города. Итак, теперь, если я использую здесь еще что-то, это не будет переходить на другое выражение, поэтому он не покажет добавленный город. Может ли кто-нибудь сказать мне, есть ли способ сделать это.
Как возможно, что вы не можете использовать здесь инструкцию else?
if($window.localStorage.cityApi){
$scope.cities = JSON.parse($window.localStorage.cityApi);
}
else {
AddCityService.init(function(city_response) {
$scope.loading = false;
$scope.cities = city_response.data;
$scope.city = JSON.parse(JSON.stringify(getCity($stateParams._id)));
$window.localStorage.cityApi = JSON.stringify($scope.cities);
});
Не работает ли это?
$scope.cities
его в $scope.cities
и, возможно, одновременно сохранить его в localStorage. Не видя, как вы добавляете города, я не могу рассказать вам больше.
AddCityService.init
вelse
ветку?