为什么数据在 AngularJS 中没有显示 $http.get?

why data not showing up with $http.get in AngularJS?

我正在尝试使用 angularJS 创建与数据库的连接。我正在使用 $http.get 连接 PHP 服务器

控制器

var oke = angular.module('secondApp',[]);
          oke.controller('dataAdmin',function(){
            return{
              controller : function($scope,$http){
                $scope.displayData = function(){
                $http.get('db.php').success(function(hasil){
                  $scope.datas=hasil;

                });
                console.log($scope.datas);
                }
              }
            };
          });

HTML

<div ng-controller="dataAdmin" ng-init="displayData()" ng-app="secondApp">
      <input type="text" ng-model="hasil" placeholder="Search" style="margin-left:2%;margin-bottom:5px;"/>
        <ul>
          <li ng-repeat="nt in datas | filter:hasil | orderBy:'username'">
            Username : {{nt.username}} | Password : {{nt.password}}
          </li>
        </ul>
    </div>

访问您的回复数据

$http.get('db.php').then(function(hasil){
  $scope.datas=hasil.data;
});

试试这个:

$http.get('db.php').then(function(result){
   $scope.datas = result.data;
}, function(err){
   console.log(err);
});

你的 console.log($scope.datas) 将显示未定义,因为它会 运行 在得到响应之前

在成功回调中写入此代码。并且会显示值。

您需要访问您在响应中获得的 数据

$scope.datas=hasil.data;

控制器代码需要做一些改动:

  var oke = angular.module('secondApp',[]);
  oke.controller('dataAdmin', ̶f̶u̶n̶c̶t̶i̶o̶n̶(̶)̶{̶
     ̶r̶e̶t̶u̶r̶n̶{̶
      ̶c̶o̶n̶t̶r̶o̶l̶l̶e̶r̶ ̶:̶ function($scope,$http){
        $scope.displayData = function(){
          $http.get('db.php'). ̶s̶u̶c̶c̶e̶s̶s̶ then(function(hasil){
            $scope.datas= ̶h̶a̶s̶i̶l̶;̶ hasil.data;
            console.log($scope.datas);
          });
         ̶c̶o̶n̶s̶o̶l̶e̶.̶l̶o̶g̶(̶$̶s̶c̶o̶p̶e̶.̶d̶a̶t̶a̶s̶)̶;̶
        };
       ̶}̶
     ̶}̶;̶
  });

console.log 需要在 .then 方法内。