我从服务器获取前十个对象并将其存储在$ scope.data中。它看起来像这样:
$scope.check = function(search, count) {
request.getData(search, count).success(function(response) {
$scope.data = response;
});
};
当用户向下滚动时,我想将下十个对象添加到$ scope.data,并使用ng-repeat在html中重复这20个对象。后来30,40等。
<ul scroll>
<li ng-repeat="element in data">
{{element.id}}
{{element.name}}
{{element.surname}}
</li>
</ul>
这是我的php:
while ($data = mysqli_fetch_array($result)) {
$array[] = array("id"=>(int) $data['ID'], "name"=>$data['FirstName'], "surname"=>$data['LastName'], "mobile"=>$data['MobilePhone']);
}
echo json_encode($array);
它返回的内容如下:
[{"id":885,"name":"Jeremy","surname":"Goodrow","mobile":"+48-792-518-774"},{"id":886,"name":"Noella","surname":"Modestino","mobile":"+48-792-518-774"},{"id":887,"name":"Lief","surname":"Regoli","mobile":"+48-792-518-774"}]
所以,我的问题是:如何将新的十个结果添加到现有变量($ scope.data)?当我第一次添加它时,我会这样做并且效果很好:
$scope.data = response;
但是我该如何向这个变量添加新的十个结果呢?每次来自服务器的响应都是相同的。我不能做这样的事情,因为它不起作用:
$scope.data += response;
此外,我无法将响应推送到$ scope.data,因为ng-repeat显示如下:
Resulst没有分开。请帮我。也许,我必须将元素推送到$ scope.data,但是我必须在ng-repeat中改变什么?我不知道。
答案 0 :(得分:0)
您可以使用本机数组函数concat:
var recievedData = []; //at the begining
$http.get('/url').success(function (responseData) {
$scope.data = recievedData.concat(responseData);
});
但是当来自服务器的数据已经在本地数据变量中时,请尽量避免这种情况。然后,您需要使用underscore或lodash来保持其清洁和独特。