当我到达页面底部时,它会刷新并加载新数据,但它不会显示上一页和当前页面的数据。
例如它看起来像这样:
1
2
3
4
* end of page, refreshes page*
5
6
7
8
我的控制器中的function
:
var i = 0;
$scope.result = [];
$scope.noMoreItemsAvailable = false;
$scope.loadMore = function() {
if (i < 4) {
$http.get(url.recommended + i).success(function(response) {
i++;
$scope.result = $scope.result.push(response);
console.log(response);
$timeout(function() {
$scope.result = response
});
$scope.$broadcast('scroll.infiniteScrollComplete');
});
} else {
$scope.noMoreItemsAvailable = true;
}
}
HTML:
<div class="item item-text-wrap" ng-click="post($event,res)" ng-repeat="res in result" ng-controller="recommendedJobsCtrl" ui-sref="tabs.jobDetails">
<ul>
<li id="jobTitle">{{res.title }}</li>
</ul>
</div>
<ion-infinite-scroll ng-if="!noMoreItemsAvailable" on-infinite="loadMore()" distance="1%"></ion-infinite-scroll>
答案 0 :(得分:1)
嗯,有两个主要问题:
push
归因array
的值。你不应该这样做,你只需这样做:$scope.result.push(response);
timeout
,因为它会覆盖您已有的内容:$timeout(function() {
$scope.result = response
});
顺便说一句,我建议您创建factory
以防止async
数据出现问题。
你可以这样做:
angular
.module('app', [])
.controller("MainCtrl", MainCtrl)
.factory("ItemsFactory", ItemsFactory);
ItemsFactory.$inject = ['$http'];
function ItemsFactory($http) {
var factory = {
getPages: getPages
};
return factory;
function getPages(url) {
return $http.get(url);
}
}
然后,在controller
:
MainCtrl.$inject = ['$scope', 'ItemsFactory'];
function MainCtrl($scope, ItemsFactory) {
var url = 'https://www.google.com';
function getResponse(response) {
$scope.result.push(response.data);
}
function getError(response) {
console.log(response);
}
ItemsFactory.getPages(url)
.then(getResponse);
.catch(getError);
}
请注意:我还建议您更改从back-end
检索商品的方式。这不是一个通过1检索元素1的好方法。在您的情况下,正确的是一次检索所有四个项目并在控制器中处理它们。
答案 1 :(得分:0)
$scope.result
response
导致response
被result
覆盖。
只需将其删除即可将 $timeout(function ()
{
$scope.result=response
});
附加到NSArray
删除此
if let ar = sender.draggingPasteboard().propertyListForType("ABLinkedPeopleUIDsPboardType") as? [[String]] {
// I'm assuming you're expecting to get back a two-dimensional array of Strings, or in the Obj-C realm, an NSArray of NSArrays of NSStrings
let uniqueID = ar[0][0]
}
else {
print("Property List for ABLinkedetc. is not a 2D String Array!")
}