工厂使用$ resource返回未定义的对象

时间:2016-01-12 10:32:18

标签: angularjs resources factory

我有一个使用$ resource的工厂但是不能使用生成的未定义对象 我已经看到很多关于这个问题的反应,我越来越困惑

这是我的工厂

angular.module('contrats')
    .factory('Contrats', ['$resource',
        function($resource) {
            return $resource('contrats/:contratId', { contratId: '@_id'}, {
                update: {method: 'PUT'},
            });
        }
]);

这是我的控制器

// Contrats controller
var app = angular.module('contrats')
.controller ('ContratsController', 
['$scope' , '$stateParams', '$location', 'Authentication', 'Contrats', function($scope, $stateParams, $location, Authentication, Contrats)
    {
            $scope.contrats = Contrats.query();
            $scope.nbctrt = $scope.contrats.length;
})];

$ scope.contrats.length =>生成错误无法获取未定义的属性

我坚持了好几天并且不明白感谢您对新手的建议

1 个答案:

答案 0 :(得分:0)

澄清我的评论。

在成功函数中添加日志,以便在记录之前完成查询,如下所示

$scope.contrats = Contrats.query(function(success) { 
   // response from query
   console.log(success); 

   // length of $scope.contrats
   console.log('nb contrats',$scope.contrats.length); 
   // first item in $scope.contrats
   console.log('contrats[0]:' , $scope.contrats[0]);

}, function(error){
   console.log(error); 
});