Отображение вложенных результатов http-запроса после отправки

#javascript #html #angularjs

#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. что вы получаете data ?

2. я получаю вложенные результаты получателя и суммы. более одного результата

3. Я должен это знать. Но не могли бы вы куда-нибудь вставить его и показать, что именно вы получаете?

Ответ №1:

Если первый скрипт отображает один результат, я предполагаю, что ваши данные поступают в формате

 [{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>
  

Комментарии:

1. существует несколько данных

2. вам действительно нужно показать мне структуру данных, прежде чем я смогу ответить на этот вопрос