Javascript 加载屏幕不显示';单击分页时不显示,但代码在其他视图上运行良好

Javascript 加载屏幕不显示';单击分页时不显示,但代码在其他视图上运行良好,javascript,angularjs,Javascript,Angularjs,我的网络应用程序有一个奇怪的问题。我设置了一个加载屏幕,该屏幕在除搜索视图外的所有视图上都能正常工作,但我在所有视图中都使用了相同的代码逻辑:/ 我试着为你制作一个plunker,但在那里也很好用。我的错误必须直接出现在我的搜索视图代码中 我有分页功能,当我点击一个不同的页面时,应该会再次出现一个加载屏幕,但它不会显示出来(它会在最初的页面加载时显示,只是在那之后再也不会显示)。单击页面后,已正确修改加载的My helper变量。我有另一种观点,就像分页一样,它工作得很好,我在那里没有做任何不同

我的网络应用程序有一个奇怪的问题。我设置了一个加载屏幕,该屏幕在除搜索视图外的所有视图上都能正常工作,但我在所有视图中都使用了相同的代码逻辑:/ 我试着为你制作一个plunker,但在那里也很好用。我的错误必须直接出现在我的搜索视图代码中

我有分页功能,当我点击一个不同的页面时,应该会再次出现一个加载屏幕,但它不会显示出来(它会在最初的页面加载时显示,只是在那之后再也不会显示)。单击页面后,已正确修改加载的My helper变量
。我有另一种观点,就像分页一样,它工作得很好,我在那里没有做任何不同的事情。在这两个视图中,我都调用了
loadpage(p)
函数,在那里我将
loaded
设置为
false
,然后在完成所有操作后再次设置为
true

我也不认为我的搜索速度太快,加载屏幕无法显示,因为我的智能手机需要2-3秒才能加载页面

下面是我当前应用程序实时版本页面的一个链接,问题出现在这里

这是我的html:

<img ng-if="!loaded" ng-src="images/SplashScreen.gif" />
<div ng-class="{load: !loaded}">
    <ul class="pagination pagination-sm">
        <li ng-repeat="p in pages()" ng-click="loadpage(p)"><a href="">{{p}}</a></li>
    </ul>
    <uib-accordion close-others="true"> 
        <uib-accordion-group is-open="isopen" ng-repeat="pub in cutPubs">
            [....]
        </uib-accordion-group>
    </uib-accordion>
</div>
app.controller('SearchController', ['$scope', '$http', '$routeParams', '$filter', function($scope, $http, $routeParams, $filter) {
    //Read searchterm
    $scope.st = $routeParams.searchterm;
    //Create Pub Arrays
    $scope.filteredPubs = [];
    $scope.cutPubs = [];
    //Helpers
    $scope.currentpage = 1;
    $scope.noresults = false;
    $scope.loaded = false;

    $http.get("data/selectPubsSearch.php")
    .success(function(data) {
        $scope.pubs = data;
        $scope.filteredPubs = $filter('search')($scope.pubs, $scope.st);
        $scope.pagecount = Math.ceil($scope.filteredPubs.length/20); 

        //Pagination Loop
        $scope.pages = function() {
            var input = [];
            for (var i = 1; i <= $scope.pagecount; i++) {
                input.push(i);
            }
            return input;
        };

        //Cut off results into units of 20 for pages
        $scope.cutArray = function(offset) {    
            $scope.cutPubs = [];
            for (var i = offset; i < $scope.filteredPubs.length && i < offset+20;  i++) {
                $scope.cutPubs.push($scope.filteredPubs[i]);
            }
            $scope.loaded = true;
        };
        $scope.cutArray(0); //call for initial page load

        //Load and insert the page specific content
        $scope.loadpage = function(page) {
            $scope.loaded = false;
            $scope.currentpage = page;
            var offset = page*20-20; 
            $scope.cutArray(offset);
        };  
    }); 
}]);
app.controller('ListController', ['$scope', '$http', function($scope, $http) {  
    $scope.loaded = false;

    //Load and insert the page specific content
    $scope.loadpage = function(page) {
        if (page != $scope.currentpage) {
            $scope.loaded = false;
            $scope.currentpage = page;
            $scope.pubs = [];
            $scope.cities = [];
            var offset = page*20-20;
            //Get cities
            $http({...})
            .success(function(data) {
                $scope.cities = data;
                //How many pages do we need?
                $http.get(...)
                .success(function(data) {
                    $scope.pagecount = Math.ceil(data/20);
                }); 
                //Get pubs
                $http({...})
                .success(function(data) {
                    $scope.pubs = data;
                    $scope.loaded = true;
                });
            });
        }
    };  
}]);