angular .then()无法识别

时间:2014-06-28 13:24:22

标签: angularjs angularjs-scope angular-services

我尝试在角度控制器中使用.then()

 angular.module('n2goApp')
        .controller('MainCtrl', function($scope, Products) {        
                Products.get(). then( function ( response ) {
                    $scope.data = response;
                    console.log(response);
                    $scope.totalPages = response.TotalPages;
                    $scope.totalItems = response.total;
                    $scope.products = response.data;
                    $scope.currentPage = response.current_page;
                    $scope.maxSize = 5;
                    $scope.setPage = function(pageNo) {
                        $scope.currentPage = pageNo;
                    };
                });
});

但是给我一个错误

Error: Products.get(...).then is not a function

服务

angular.module('n2goApp')
  .service('N2goservice', function N2goservice() {
    // AngularJS will instantiate a singleton by calling "new" on this function
  }).factory('Products', ['$resource', function($resource) {

        var url = 'http://domain.com/api/products';
    return $resource( url + '/:prodID', 
        { bookId: '@prodID' }, { 
            loan: { 
                method: 'PUT', 
                params: { prodId: '@prodID' }, 
                isArray: false 
            },
                        get:{
                             method: 'GET', 
                 params: { 
                                 prodId: '@prodID',
                                 page:'@page'
                                }, 
                isArray: false
                        }
            /* , method3: { ... } */
        } );

}]);

我做错了什么?

2 个答案:

答案 0 :(得分:19)

你必须从资源中获得$ promise。像这样:

Products.get().$promise.then(..)

答案 1 :(得分:7)

或者您可以将其他语法与回调

一起使用
Products.get({},function(response) {
});