Muestra los datos recostackdos de MYSQL a la página html usando AngularJs y PHP

Soy nuevo en AngularJS. Estoy trabajando en un proyecto donde la aplicación muestra contenido de MYSQL (tabla ficticia con detalles de vuelo que tiene columnas de Aerolíneas, salida, Llegada, Duración y Precio) en una tabla HTML usando PHP y AngualarJS. He escrito el código para AngularJs y PHP. Ahora, cuando trato de mostrar los datos recuperados a html, no puedo hacerlo (traté de acceder a mi archivo PHP directamente, y muestra los datos en formato JSON). Consulte mi HTML (flights.html), Código JAVASCRIPT / AngularJS (Flights.js) y PHP (Flights.php):

CÓDIGO HTML

   Flights       
Airlines Departure Arrival Duration Price
{{flights.Airlines}} {{flights.departure}} {{flights.Arrival}} {{flights.Duration}} {{flights.Price}}

CÓDIGO JAVASCRIPT

 var response; var app = angular.module('mymodule', []); app.controller('myCtrl', function($scope, $http) { $http.get("Flights.php") .success(function(response) { //$scope.myWelcome = response; //$scope.myWelcome = response.data; $scope.response = response.data; console.log(response); }) .error(function() { $scope.response = "error in fetching data"; }); }); 

CÓDIGO PHP

 query($sql); if($result->num_rows > 0) { while ($row = $result->fetch_array()) { $data[] = $row; } $res_final = json_encode($data); echo $res_final; } else { echo"0 results"; } $conn->close(); } ?> 

además cuando veo la consola puedo encontrar los objetos (elementos de la matriz) como Array [6] 0: Object1: Object2: Object3: Object4: Object5: Objectlength: 6__proto__: Array [0] Por esto soy consciente de que los datos se han pasado javascript pero por código Angularjs / javascript no es apropiado. Por lo tanto, ayúdenme con esto, y gracias de antemano

Deberías hacer:

 $scope.response = response; 

en lugar de:

 $scope.response = response.data; 

Este es el por qué:

si usas la promesa:

 .then(function successCallback(response) 

entonces deberías hacer response.data ;

A medida que utiliza .success , el primer argumento ya es su response.data . En este caso, lo llamaste ‘respuesta’ y esto puede haberte confundido. Cuando use .success evite nombrar el argumento como ‘respuesta’. Use algo como:

  .success(function(data) { $scope.lstWeeklyMenu = data; 

Eche un vistazo a: http://www.codelord.net/2015/05/25/dont-use-$https-success/

y

https://www.peterbe.com/plog/promises-with- $ http

En breve:

El .then(response) obtienes el objeto de respuesta:

El objeto de respuesta tiene estas propiedades:

  • data – {string | Object} – El cuerpo de respuesta transformado con las funciones de transformación.
  • estado – {número} – código de estado HTTP de la respuesta.
  • encabezados – {function ([headerName])} Función captador de encabezado.
  • config – {Object} – El objeto de configuración que se utilizó para generar la solicitud.
  • statusText – {string} – Texto de estado HTTP de la respuesta.

https://docs.angularjs.org/api/ng/service/ $ http

y usar .success() cada una de las propiedades de respuesta es un argumento:

.success (datos, estado)