angularjs $ scope不在html视图中显示数据,但数据显示在控制台中

时间:2018-04-24 22:47:47

标签: php mysql angularjs

我试图在我的应用程序中在Web浏览器中将数据从我的数据库读取到我的视图中。问题是我无法显示任何数据。数据显示在控制台中,因此它连接到数据库,但不知何故它不会在视图中打印数据。

Data is showing in console but not in view

playerDetails.php

include 'database_connections.php';

$sql = "SELECT idPlayer, PlayerName, PlayerEmail, PlayerPassword, 
PlayerTeam FROM Players";
$result = mysqli_query($conn, $sql);

$data =  array();
 if (mysqli_num_rows($result) > 0) {
 // output data of each row
  while($row = mysqli_fetch_assoc($result)) {
     $data[] = $row;
  }
 } else {
  echo "0 results";
 }

 mysqli_close($conn);
 echo json_encode($data);

angular-script.js(Controller)

var crudApp = angular.module('crudApp',[]);

crudApp.controller('DbController', function ($scope, $http) {
 $http.get("DatabaseFiles/playerDetails.php")
 .then(function (response) {$scope.players = response.data;
 console.log(response.data)
 });
});

HTML

<!doctype html>
<html ng-app='crudApp'>
<head>
<title>Crud app</title>

<script src="js/jQuery/jquery.min.js"></script>
<script src="lib/angular/angular.min.js"></script>

</head>

<body>
  <div ng-controller="DbController">

    <table >
      <tr>
        <th>Player ID</th>
        <th>Name</th>
        <th>Email</th>
        <th>Password</th>
        <th>Team</th>
      </tr>

      <tr ng-repeat="players in Players | orderBy:'-created'">
        <td>{{players.idPlayer}}</td>
        <td>{{players.PlayerName}}</td>
        <td>{{players.PlayerEmail}}</td>
        <td>{{players.PlayerPassword}}</td>
        <td>{{players.PlayerTeam}}</td>
      </tr>

    </table>
  </div>
  <script src="js/angular-script.js"></script>
</body>

已解决

我不确定导致问题的原因,但我创建了一个新的数据库和一个新项目,并对我的PlayerController.js(以前的“angular-script.js”)和index.html进行了以下更改

PlayerController.js

var app = angular.module('crudApp', []);
app.controller('mainController', function($scope, $http) {

  $http.get('PlayerRead.php').then(function(response) {
    $scope.users = response.data;
    console.log(response.data);
 });
});

HTML

<!doctype html>
<html >
<head>
  <title>Crud app</title>
  <script 
    src="https://ajax.googleapis.com/ajax/libs/
    angularjs/1.6.4/angular.min.js" 
  ></script>
</head>

<body ng-app="crudApp" ng-controller="mainController">
  <table>
    <tr>
      <th>Player ID</th>
      <th>Name</th>
      <th>Email</th>
      <th>Team</th>
    </tr>

    <tr ng-repeat="user in users track by $index">
     <td>{{user.PlayerID}}</td>
     <td>{{user.PlayerName}}</td>
     <td>{{user.PlayerEmail}}</td>
     <td>{{user.PlayerTeam}}</td>
   </tr>

  </table>

  <script src="PlayerController.js"></script>
</body>

2 个答案:

答案 0 :(得分:1)

将其设置为以下行,因为它区分大小写。

    <tr ng-repeat="player in players | orderBy:'-created'">
       <td>{{player.idPlayer}}</td>
       <td>{{player.PlayerName}}</td>
       <td>{{player.PlayerEmail}}</td>
       <td>{{player.PlayerPassword}}</td>
       <td>{{player.PlayerTeam}}</td>
   </tr>

答案 1 :(得分:0)

应为players in players | orderBy:'-created'