angularjs $ scope не показывает данные в представлении html, но данные отображаются в консоли - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь прочитать данные из моей базы данных для просмотра в приложении в веб-браузере.Проблема в том, что я не могу получить данные для показа.Данные отображаются в консоли, поэтому они подключаются к базе данных, но почему-то не выводят данные в представлении.

Данные отображаются в консоли, но не отображаются

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 (контроллер)

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 голосов
/ 25 апреля 2018

Сделать так, как показано ниже строки, так как она чувствительна к регистру.

    <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>
0 голосов
/ 25 апреля 2018

должно быть players in players | orderBy:'-created'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...