有没有办法为if条件而不是下一行代码设置优先级?

时间:2016-01-29 11:05:06

标签: angularjs api if-statement

我有一个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获取数据。我已经检查了chrome开发人员工具。我也不能使用其他条件。因为我有页面添加城市并显示添加的城市。如果我添加一次城市,它将重定向到页面以显示添加的城市。所以,现在如果我在这里使用其他,那将不会转移到else语句本身,因此它不会显示添加的城市。任何人都可以告诉我有没有办法做到这一点。

1 个答案:

答案 0 :(得分: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);
});

这不起作用吗?