Контроллер AngularJS не показывает данные из базы данных в режиме маршрутизации - PullRequest
0 голосов
/ 22 февраля 2019

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

СТРАНИЦА ИНДЕКСА:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <base href="/angtest/">
        <title>AngularJS Test</title>
    </head>
    <body ng-app="myApp">
        <p>
            <a href="home">Home</a> - <a href="about">About</a> - <a href="items">Items</a>
            <br>
            Click on the links to go to new pages.
        </p>
        <div ng-view></div>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.7/angular.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.7/angular-route.js"></script>
        <script>
            var app = angular.module("myApp", ["ngRoute"]);
            app.config(['$routeProvider','$locationProvider',
            function($routeProvider, $locationProvider) {
            $locationProvider.html5Mode(true);
            $routeProvider
                .when("/", {
                    templateUrl : "home.html"
                }).when("/home", {
                    redirectTo : "/"
                }).when("/about", {
                    templateUrl : "about.html"
                }).when("/items", {
                    templateUrl : "items.html",
                    controller : "usercontroller"
                }).otherwise({
                    redirectTo : "/"
                });
            }]);
            app.controller("usercontroller", function($scope, $http){
                $http.get("select.php")
                .then(function(data){
                    $scope.items = data;
                });
            });
        </script>
    </body>
</html>

При переходе в / home, / about или / items страницы загружаются правильно, но / items не захватывает информацию базы данных.

Заголовок и описание - это столбцы из таблицы элементов, которые я хотел бы показать.

СТРАНИЦА ЭЛЕМЕНТОВ:

<h1>MySQL Database</h1>
<div ng-controller="usercontroller">
    <table>
        <tr>
            <th>Item Name</th>
            <th>Item Description</th>
        </tr>
        <tr ng-repeat="x in items">
            <td>{{ x.title }}</td>
            <td>{{ x.description }}</td>
        </tr>
    </table>
</div>

ВЫБРАТЬ СКРИПТ:

<?php
    $connect = mysqli_connect("localhost", "USERNAME", "PASSWORD", "DBNAME");
    $output = array();
    $query = "SELECT * FROM items";
    $result = mysqli_query($connect, $query);
    if(mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_array($result)) {
            $output[] = $row;
        }
        echo json_encode($output);
    }
?>

В окне консоли ошибки не отображаютсяup.

UPDATE

Чтобы проверить окно консоли, я изменил свой контроллер на:

app.controller("usercontroller", function($scope, $http){
    $http.get("select.php")
    .then(function(data){
        console.log(data);
        $scope.items = data;
    });
});

Журнал показывает:

Console Window

1 Ответ

0 голосов
/ 27 февраля 2019

Страница товара

<h1>MySQL Database</h1> <div> <table> <tr> <th>Item Name</th> <th>Item Description</th> </tr> <tr ng-repeat="x in items"> <td>{{ x.title }}</td> <td>{{ x.description }}</td> </tr> </table> </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...