Как сохранить мой результат в виде индексированного массива?

В настоящее время мой массив cust пуст, но данные json (завернутые с некоторыми метаданными) успешно загружены, как я вижу в предварительном просмотре сети отладчика Chrome.

Как передать результат в моем массиве, чтобы индексировались, и я могу получить к ним доступ в своей программе?

angular.module('Cust').factory('CustomizingService', ['$resource', function ($resource) {
    var url = 'http://localhost:31736/Service1.svc/:link/';

    return {
        Customizing: $resource(url, {callback: 'JSON_CALLBACK'}, {
            customers: {
                method: 'JSONP', transformResponse: function(data) {return angular.fromJson(data).body.rows},
                params: { link: 'GetCustomers', numberOf: '@numberOf', valid = @valid },
                isArray: true },...

Мой контроллер:

app.controller('controllerA', ['$scope', 'CustomizingService', 
    $scope.cust = CustomizingService.Customizing.customers({numberOf: 12, valid: true});
}]);

Ответ 1

Я решил проблему, используя сервис AngularJS restangular. Это простой способ правильно и легко обрабатывать ресурсы Rest API.

Дополнительная информация здесь: https://github.com/mgonto/restangular.

Теперь я могу удалить ng-resource : -)

Новый код:

app.controller('controllerA', ['$scope', 'CustomizingService',  'Restangular', function($scope, CustomizingService, Restangular) {
     //http://localhost:31736/Service1.svc/GetCustomers?numberOf=12&valid=true
     Restangular.all('Service1.svc').customGETLIST('GetCustomers',{numberOf: 12, valid: true}).then(function(result){
        $scope.customers= result;
     });
}]);

app.config(function(RestangularProvider){
    RestangularProvider.setBaseUrl('http://localhost:31736/');
    RestangularProvider.setDefaultRequestParams('jsonp', {callback: 
   'JSON_CALLBACK'});
});

Ответ 2

app.controller('controllerA', ['$scope', 'CustomizingService', function(){
   CustomizingService.Customizing
    .customers({numberOf: 12, valid: true}).$promise
    .then(function(data){
      $scope.cust = data;
    },function(error){
    });
}]);