kod HTML:

<!DOCTYPE html>
<html ng-app="searching">
  <head>
    <meta charset="utf-8">
    <title>Angular_JS</title>
    <script type="text/javascript" src="Angular_JS/angular.min.js"></script>
    <script type="text/javascript" src="ctrl.js"></script>
  </head>
  <body ng-controller="Ctrl">
    <div>
      <table>
          <tr>
            <th>ID</th>
            <th>TITLE</th>
          </tr>
          <tr ng-repeat='entry in data'>
          <td>{{entry.id}}</td>
          <td>{{entry.title}}</td>
          </tr>
      </table>
    </div>
  </body>
</html>

ctrl.js

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

myApp.controller('Ctrl', ['$scope','$http', function($scope,$http) {
  console.log('Initiating Controller');
  $http.get('content.php').then(function successCallback(data) {
    $scope.entries = data;
    console.log(data);
  },function errorCallback(){
    alert("Error Occured");
  });
}]);

content.php

<?php
mysql_connect('localhost','root','');
mysql_select_db('ias');

  $q = "SELECT * FROM tbl_question_category";
  $res = mysql_query($q);

  while ($rows = mysql_fetch_assoc($res)) {
    $data[] = array('id'=>$rows['question_category_id'],'title'=>$rows['category_title']);
  }
  $jso1 = json_encode($data);
  print_r ($jso1);
?>

Będzie to wynik ... Kliknij, aby zobaczyć obraz

Ale nie pokazuje nic na ekranie przeglądarki ... Jest to wyjście przeglądarki .... Kliknij, aby zobaczyć obraz

Szukam dobrych odpowiedzi ... dzięki

0
Silambarasan R.D 24 czerwiec 2017, 14:30

4 odpowiedzi

Najlepsza odpowiedź

Dwie rzeczy:

Metoda $http.get() zwraca obiekt odpowiedzi, a nie dane bezpośrednio. Dyrektywa ng-repeat faktycznie próbuje iterować ten obiekt odpowiedzi, a nie Twoje dane.

Drugą rzeczą jest to, że używasz niewłaściwej zmiennej zakresu. Przypisujesz dane do $scope.entries, ale próbując iterować nad $scope.data w NG-REPEAT.

Aby to zrobić, co chcesz, po prostu zmienisz kontroler i przeglądasz na następujące elementy:

myApp.controller('Ctrl', ['$scope','$http', function($scope,$http) {
  console.log('Initiating Controller');
  $http.get('content.php').then(function successCallback(response) {
    $scope.entries = response.data;
    console.log(response.data);
  },function errorCallback(){
    alert("Error Occured");
  });
}]);


<tr ng-repeat='entry in entries'>
    <td>{{entry.id}}</td>
    <td>{{entry.title}}</td>
</tr>
1
Nikolaj Dam Larsen 24 czerwiec 2017, 11:36

Var myApp = angular.module ("wyszukiwanie", []);

myApp.controller('Ctrl', ['$scope','$http', function($scope,$http) {
  console.log('Initiating Controller');
  $http.get('content.php').then(function successCallback(data) {
    $scope.entries = data.data;
    console.log(data);
  },function errorCallback(){
    alert("Error Occured");
  });
}]);
 <tr ng-repeat='entry in entries'>
          <td>{{entry.id}}</td>
          <td>{{entry.title}}</td>
          </tr>

Użyj powyższego kodu, używasz danych, gdy musisz używać danych.data

0
Mantu Nigam 24 czerwiec 2017, 11:34

Jesteś wiążącym wyników do $ Sistand.entries i Ng-Repeat próbujesz iterować ponad $ scope.data.

Albo zmień w Controller Callback $ Sistand.entries do $ scope.data lub na widoku Zmień NG-Repeat = 'wpis w danych "do NG-Repeat =" wpis w zgłoszeniu "

0
Adrian 24 czerwiec 2017, 11:33

Używasz nieprawidłowej właściwości zakresu w widoku

Zmiana:

<tr ng-repeat='entry in data'>

Do

<tr ng-repeat='entry in entries'>

Aby odpowiada $scope.entries przypisanej w kontrolerze

1
charlietfl 24 czerwiec 2017, 11:33