2015-09-29 3 views
1

Я изучаю AngularJS, и я не могу получить данные в моей базе данных mysql, чтобы они отображались в моем представлении. Мои коды:

todoController.js

angular 
    .module('todoApp') 
    .controller('todoController', todoController) 
    .config(config); 


function config($routeProvider) { 
    $routeProvider 
    .when('/', { 
     controller: 'todoController', 
     templateUrl: 'app/views/todo-list.html' 
    }); 
} 

function todoController($http, $scope) { 
    $http.get('app/endpoints/todo-list.php') 
    .then(function successCallback(data) { 
     $scope.todos = data; 
     console.log(data); 
    }, function errorCallback(data) { 
     console.log(data); 
    }); 
} 

ToDo-list.html

<table cellpadding="4"> 
    <tr ng-repeat="t in todos"> 
    <td>{{ t.name }}</td> 
    <td>Remove</td> 
    </tr> 
</table> 

index.html

<!DOCTYPE html> 
<html lang="en" ng-app="todoApp"> 
<head> 
    <meta charset="UTF-8"> 
    <title>AngularJS</title> 
</head> 
<body> 
     <div ng-view><!-- data will be loaded here--></div> 

    <script type="text/javascript" src="assets/jquery/jquery.js"></script> 
    <script type="text/javascript" src="assets/angular/angular.js"></script> 
    <script type="text/javascript" src="assets/angular/angular-route.js"></script> 
    <script type="text/javascript" src="app.js"></script> 

    <!--controllers--> 
    <script type="text/javascript" src="app/controllers/todoController.js"></script> 
</body> 
</html> 

ToDo-list.php

<?php 
require '../../connection.php'; 
$statement = $db->prepare("SELECT * FROM todo_list"); 
$statement->execute(); 
$results=$statement->fetchAll(PDO::FETCH_ASSOC); 
echo json_encode($results); 

Когда я просматриваю консоль, она возвращает объекты enter image description here

но затем данные из моей базы данных не отображается в окне просмотра. Моя связь правильная. Я что-то упустил? Спасибо.

ответ

2

правильный синтаксис будет -

function todoController($http, $scope) { 
    $http.get('app/endpoints/todo-list.php') 
    .then(function successCallback(response) { 
     $scope.todos = response.data; 
     console.log(response); 
    }, function errorCallback(reason) { 
     console.log(reason); 
    }); 
} 

Примечание - функция успеха принимает ответ (данные в вашем случае) объекта. возвращаемое фактическое значение должно быть answer.data (data.data в вашем случае).

+0

Это работает, спасибо. BTW, это данные в response.data встроенный в javascript? – FewFlyBy

+0

да, весь ответ - это всего лишь объект javascript. – Rabi

+0

О, вот почему, спасибо! – FewFlyBy

Смежные вопросы