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