Как сохранить мой результат в виде индексированного массива?
В настоящее время мой массив 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){
});
}]);