Есть ли способ установить приоритет для условия if, а не для следующих строк кода?

0

У меня есть данные 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. Я проверил в хром инструменты для разработчиков. Я не могу использовать другое условие для этого. Потому что у меня есть страницы, чтобы добавить город и показать добавленные города. если я добавлю город один раз, это будет перенаправление на страницу, чтобы показать добавленные города. Итак, теперь, если я использую здесь еще что-то, это не будет переходить на другое выражение, поэтому он не покажет добавленный город. Может ли кто-нибудь сказать мне, есть ли способ сделать это.

  • 0
    Почему вы не можете поместить AddCityService.init в else ветку?
  • 0
    у меня есть страницы, чтобы добавить город и показать добавленные города. если я добавлю город один раз, он будет перенаправлен на страницу, чтобы показать добавленные города. Итак, теперь, если я буду использовать здесь другое, это не будет переходить к другому заявлению itselft. я думаю, ты понимаешь мою мысль
Показать ещё 3 комментария
Теги:
if-statement

1 ответ

0

Как возможно, что вы не можете использовать здесь инструкцию 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);
});

Не работает ли это?

  • 0
    Привет, я знаю это. но я говорю, я не могу использовать здесь еще. потому что если я добавлю новый город из формы, он не будет отображать добавленный город
  • 0
    Тогда, я думаю, при добавлении нового города в форму вы должны просто $scope.cities его в $scope.cities и, возможно, одновременно сохранить его в localStorage. Не видя, как вы добавляете города, я не могу рассказать вам больше.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню