Angularjs 在angular js中处理来自$resource的数据响应

Angularjs 在angular js中处理来自$resource的数据响应,angularjs,laravel,laravel-4,angularjs-scope,angular-resource,Angularjs,Laravel,Laravel 4,Angularjs Scope,Angular Resource,我有一个带有laravel4和angularjs的RESTful应用程序 在我的Laravel控制器中 public function index() { $careers = Career::paginate( $limit = 10 ); return Response::json(array( 'status' => 'success', 'message' => 'Careers successfully loaded!', 'caree

我有一个带有
laravel4
angularjs
RESTful
应用程序

在我的Laravel控制器中

public function index() {

  $careers = Career::paginate( $limit = 10 );

  return Response::json(array(
    'status'  => 'success',
    'message' => 'Careers successfully loaded!',
    'careers' => $careers->toArray()),
    200
  );
}
还有有棱角的脚本

var app = angular.module('myApp', ['ngResource']);

app.factory('Data', function(){
    return {
        root_path: "<?php echo Request::root(); ?>/"
    };
});

app.factory( 'Career', [ '$resource', 'Data', function( $resource, Data ) {
   return $resource( Data.root_path + 'api/v1/careers/:id', { id: '@id'});
}]);

function CareerCtrl($scope, $http, Data, Career) {

    $scope.init = function () {
        $scope.careers = Career.query(); 
    };
}
在控制台中使用$resource查看我的请求

请参阅:.$resource

$scope.init = function () {
    var success = function(careerList, getResponseHeaders){
      $scope.careers = careerList;
    };
    var failure = function(data){
      // TODO
    };
    Career.query(success, failure); 
};
由于这种怪癖和其他烦恼,我建议使用默认的$resource来代替它。它让生活变得更轻松

试试以下方法:

app.factory( 'Career', [ '$resource', 'Data', function( $resource, Data ) {
   return $resource( Data.root_path + 'api/v1/careers/:id', { id: '@id'}, {
    query: {
        isArray: false,
        method: 'GET'
    }
   });
}]);


Career.query(function(res) {
   $scope.careers = res.careers.data;
}, function(error) {
  // Error handler code
}); 

我的第一个问题是,为什么我在$scope.careers中得到空数组[]?这不是失败。请看屏幕截图,我得到的是所有值,如何将其映射到scope变量?您是通过$resource调用还是通过$http调用得到该屏幕截图?还可以尝试编辑的新代码。您可以在回调中获取数据,该数据可能会在查询函数返回后运行。屏幕截图来自$resource,使用您的代码,我也得到了相同的和
$scope.careers
as
undefined
same在这里挣扎了几个小时
app.factory( 'Career', [ '$resource', 'Data', function( $resource, Data ) {
   return $resource( Data.root_path + 'api/v1/careers/:id', { id: '@id'}, {
    query: {
        isArray: false,
        method: 'GET'
    }
   });
}]);


Career.query(function(res) {
   $scope.careers = res.careers.data;
}, function(error) {
  // Error handler code
});