如何将json对象附加到angularjs中的exixting数据下面

时间:2018-05-28 09:51:46

标签: angularjs

作为html页面

 <div class="posts" ng-repeat="s in news" ng-init="moreNews()">
      {{s.news}}
 </div>
 <input type="button" value="get data" onclick="moreNews()"/>

在控制器

$scope.moreNews = function () {
       $http.get("test?p=" + $scope.pno)
                .then(function (response) {
                    console.log(response);
                    $scope.news = response.data.news;
                    $scope.pno++;
                  }, function (data) {
                    alert("Oops! Unable to get data from server")
                });
    };

这里我从服务器获取数据并显示到html页面。这里的第一个响应是正确显示数据。但是对于第二个响应,它会覆盖我想要将下一个数据添加到第一个数据之下的数据,因此只有一个。

如何在现有数据下方附加列表?

3 个答案:

答案 0 :(得分:3)

$scope.moreNews = function () {
       $http.get("test?p=" + $scope.pno)
                .then(function (response) {
                    console.log(response);
                    for(var i=0;i<response.data.news.length;i++){
                      $scope.news.push(response.data.news[i]);
                    }                    
                    $scope.pno++;
                  }, function (data) {
                    alert("Oops! Unable to get data from server")
                });
    };

答案 1 :(得分:2)

试试这段代码

$scope.moreNews = function () {
       $http.get("test?p=" + $scope.pno)
                .then(function (response) {
                    console.log(response);
                    $scope.news=$scope.news.concat(response.data.news);
                    $scope.pno++;
                  }, function (data) {
                    alert("Oops! Unable to get data from server")
                });
    };

答案 2 :(得分:1)

$scope.news = [];

$scope.moreNews = function () {
   $http.get("test?p=" + $scope.pno)
            .then(function (response) {
                $scope.news.push(response.data.news);
                $scope.pno++;
              }, function (data) {
                alert("Oops! Unable to get data from server")
            });
};

push()方法   - 将一个或多个元素添加到同一数组的末尾。