2016-01-16 43 views
2

我无法从服务中填充控制器中的JSON数据。如何使用Slim框架API连接(路由)Angular?

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

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

角控制器(根/应用/ 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服务(根/ 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() .'}}'; 
    } 
}  
?> 

JSON结果来自PHP服务通过访问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查看(的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> 
+1

不太清楚你的问题是什么 – charlietfl

+0

@charlietfl我无法从服务中填充控制器中的数据。 – Ivan

+1

检查浏览器开发工具网络中的实际请求,看看是什么状态,什么是返回等。我认为你有一个路径问题,因为你有一个领先的'/'。很好的借口添加'$ http'错误处理也是 – charlietfl

回答

1

尝试在网址中删除领先/因为这将告诉浏览器在网站根开始...不在目录中,你想让它到