提交后显示来自http请求的嵌套结果

时间:2016-10-02 19:46:08

标签: javascript html angularjs

我的页面上有一个文本框,用户可以在其中输入要搜索的用户名,然后单击提交按钮。我想要实现的是当用户点击提交按钮时,结果应立即推送到页面。 使用我的脚本它所做的只显示一个结果,即使可能有10个或更多

JS

.controller('search_ctrl',['$scope','$http','$location','$ionicLoading','$ionicPopup','$state','$stateParams','$cordovaToast',function($scope,$http,$location,$ionicLoading,$ionicPopup,$state,$stateParams,$cordovaToast){
    $scope.username=localStorage.getItem("username");
    $scope.searchresults = [];


        $scope.expendsearch=function() {
        $ionicLoading.show({template: '<p>Please Wait...</p><ion-spinner></ion-spinner>'});
        event.preventDefault();
        $http.post("http://localhost/app/templates/spree/sales/expenses/search_results.php",
        {'username':$scope.username})
        .success(function(data){
        //console.log(JSON.stringify(data));
        $scope.results=data;
        {$ionicLoading.hide();}

        var search ={"fullname":data[0].reciever, "username":data[0].amount};
        $scope.searchresults.push(search);
        }).error(function(error){
        console.error(error);
        });
        }


}])

HTML

<div ng-controller="search_ctrl" ng-repeat="item in searchresults track by $index">
{{item.username}}
{{item.fullname}}
</div>

当我将脚本更改为:

  .controller('search_ctrl',['$scope','$http','$location','$ionicLoading','$ionicPopup','$state','$stateParams','$cordovaToast',function($scope,$http,$location,$ionicLoading,$ionicPopup,$state,$stateParams,$cordovaToast){
        $scope.username=localStorage.getItem("username");
        $scope.searchresults = [];


            $scope.expendsearch=function() {
            $ionicLoading.show({template: '<p>Please Wait...</p><ion-spinner></ion-spinner>'});
            event.preventDefault();
            $http.post("http://localhost/app/templates/spree/sales/expenses/search_results.php",
            {'username':$scope.username})
            .success(function(data){
            //console.log(JSON.stringify(data));
            $scope.results=data;
            {$ionicLoading.hide();}

            var search ={"fullname":data.reciever, "username":data.amount};
            $scope.searchresults.push(search);
            }).error(function(error){
            console.error(error);
            });
            }


    }])

页面上没有任何内容

1 个答案:

答案 0 :(得分:0)

如果第一个脚本显示一个结果,我假设您的数据格式为

[{reciever:'aaa',amount:'bbb'},{reciever:'ccc',amount:'ddd'} ....]

所以你可以$scope.searchResults = data;

并在html中,执行

<div ng-controller="search_ctrl" ng-repeat="item in searchresults track by $index">
{{item.reciever}}
{{item.amount}}
</div>