проблема с выводом c базы
Доброго времени суток. Пример кода который работает:
var phonecatApp = angular.module('phonecatApp', []); phonecatApp.controller('PhoneListCtrl', function ($scope) { $scope.phones = [ {'name': 'Nexus S', 'snippet': 'Fast just got faster with Nexus S.', 'age': 1}, {'name': 'Motorola XOOM™ with Wi-Fi', 'snippet': 'The Next, Next Generation tablet.', 'age': 2}, {'name': 'MOTOROLA XOOM™', 'snippet': 'The Next, Next Generation tablet.', 'age': 3} ]; $scope.orderProp = 'age'; }); Пытаюсь сделать то же самое, только данные взять с базы данных, с помощью php, select.php: <?php $dbhost = "localhost"; // Имя хоста БД $dbusername = "root"; // Пользователь БД $dbpass = ""; // Пароль к базе $dbname = "angular_baza"; // Имя базы $db = mysql_connect ($dbhost,$dbusername,$dbpass); mysql_select_db("angular_baza",$db); $result = mysql_query("SELECT * FROM angular_tabel",$db); echo json_encode($result); controllers.js: var phonecatApp = angular.module('phonecatApp', []); phonecatApp.controller('PhoneListCtrl', function ($scope, $http) { $http.get('select.php').success(function(data) { $scope.phones = {}; $scope.phones = angular.fromJson(data); }); $scope.orderProp = 'age'; }); Здесь в $http.get('select.php').success(function(data) {data: JSON_encode, warning...type is unsupported и т.д. index.html: <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <title></title> <link href="css/bootstrap.css"> <link href="css/style.css"> <!--<script src="js/bootstrap.js"></script>--> <script src="js/angular.min.js"></script> <script src="js/controllers.js"></script> </head> <body ng-app="phonecatApp" > <ul ng-controller="PhoneListCtrl"> <li ng-repeat="phone in phones"> {{phone.name}} {{phone.price}} {{phone.age}} {{phone.snippet}} </li> </ul> </body> </html> В чем проблема? |
Выдержка из офф документации
Response transformations ($httpProvider.defaults.transformResponse and $http.defaults.transformResponse): If XSRF prefix is detected, strip it (see Security Considerations section below). If JSON response is detected, deserialize it using a JSON parser. ps. angular.fromJson() - не нужен |
Цитата:
var phonecatApp = angular.module('phonecatApp', []); phonecatApp.controller('PhoneListCtrl', function ($scope, $http) { $scope.phones = {}; $scope.orderProp = 'age'; $http.get('select.php').success(function(data) { $scope.phones = angular.fromJson(data); }); }); Т.о. объект будет существовать сразу, а потом просто обновится... Да и вообще все "явные" объявления данных удобнее делать сразу, дабы не искать потом по всему контроллеру. ;) |
$result = mysql_query("SELECT * FROM angular_tabel",$db); echo json_encode($result); Возможно что-то изменилось в новых версиях PHP, но вроде $relust это идентификатор, а не массив данных. Данные нужно из идентификатора результата читать fetch (вроде бы) |
Часовой пояс GMT +3, время: 17:38. |