#arrays #json #angularjs #object
#массивы #json #angularjs #объект
Вопрос:
Правильно, я использую $resource и query для доступа к интерфейсу RESTful, который выдает ответ в следующем формате:
record (array[RecordResponse], optional)
например:
{
"record": [
{
"countryID": 732,
"countryName": "Western Sahara",
"countryISO": "EH",
"countryISO3": "ESH"
},
{
"countryID": 4,
"countryName": "Afghanistan",
"countryISO": "AF",
"countryISO3": "AFG"
},
{
"countryID": 8,
"countryName": "Albania",
"countryISO": "AL",
"countryISO3": "ALB"
}
]
}
мой текущий запрос $resource выглядит следующим образом:
return $resource('http://mydatasource/countries?fields=countryID,countryName,countryISO,countryISO3', {}, {
query: {method:'GET', isArray:false}
})
В моем контроллере я получаю доступ к ресурсу с помощью:
$scope.places = Countries.query();
Затем я могу поместить их в хороший список, на мой взгляд, и делать что-то, например:
<tr ng-repeat="country in places.record">
<td>{{country.countryName}}</td>
</tr>
Отлично, никаких проблем нет!
Однако я сталкиваюсь с проблемами, когда пытаюсь выполнить фильтры и т. Д. С возвращаемыми данными в контроллере. Мне нужно извлечь объекты JSON из массива записей, но я не уверен, как это сделать вне представления!
Любые указатели будут высоко оценены.
Спасибо
Ответ №1:
Как обычно, как только я отправляю вопрос, я думаю, что нашел решение…..
Я обновил $resource до:
return $resource('http://mydatasource/countries?fields=countryID,countryName,countryISO,countryISO3', {}, {
query: {
method:'GET',
isArray:true,
transformResponse: function(data, header) {
var wrappedobj = angular.fromJson(data);
return wrappedobj.record;
}
}
})
Надеюсь, это может помочь кому-то еще там тоже!
Комментарии:
1. Есть ли у вас какие-либо идеи, как отображать данные с помощью ng-repeat, если я извлекаю данные со страницы DRF с помощью массива JSON? Вот мой вопрос: ссылка
2. Можете ли вы опубликовать plunkr или jsfiddle своего кода, и я постараюсь помочь!