如何使用 Slim Framework API 连接(路由)Angular


How to connect (route) Angular with Slim Framework API?

我无法从服务填充控制器中的 JSON 数据。

我对如何实际连接它们有点卡住了。通过生成 JSON 调用该服务时工作正常。当我使用存储库时,控制器也可以工作。为了节省空间,我省略了一些代码。

问题可能出在控制器上,我只是不知道是什么。我真的很感激一些启发。

Angular Controller (root/app/user.controller.js)

(function() {
    angular
    .module('app')
    .controller('UserController', UserController);
    function UserController($http) {
        var that = this;
        $http({
            method: 'GET',
            url: '/api/users'
        }).success(function(data) {
            that.users = data; 
        });
    }   
})();   

PHP Service (root/api/index.php)

<?php
require 'vendor/autoload.php';
$app = new 'Slim'App; 
$app->get('/users', 'getUsers');
$app->run();
function getUsers() {
    $sql = "select * FROM users ORDER BY id";
    try {
        $db = getConnection();
        $stmt = $db->query($sql);  
        $wines = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($wines);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}    
?>

来自 PHP 服务的JSON 结果通过访问 http://localhost/root/api/users

[{"id":"1","username":"lucentx","first_name":"Aron","last_name":"Barbosa","address":"Manila, Philippines"},{"id":"2","username":"ozzy","first_name":"Ozzy","last_name":"Osbourne","address":"England"},{"id":"3","username":"tony","first_name":"Tony","last_name":"Iommi","address":"England"}]

HTML View (index.html)

<div class="col-md-4" ng-controller="UserController as userCtrl">
    <ul class="list-group">
        <li class="list-group-item" ng-repeat="user in userCtrl.users">
            <p>{{user.id}} - {{user.username}}</p>
        </li>
    </ul>
</div>

尝试删除 url 中的前导/,因为这会告诉浏览器从站点的根目录开始......不在您想要的目录中