Фильтр прямоугольного объекта в массив
У меня есть этот большой ресурсный объект, в котором есть много методов с большим количеством объектов и т. Д. Я также конвертирую xml в json для этого.
Одним из них является объект resourceType, который иногда имеет несколько типов resourceTypes. Когда присутствуют 2 или более, это массив. Когда это 1, это просто объект, и я не могу последовательно проходить через него, на мой взгляд.
Я сделал фильтр, который проверяет, является ли это просто объектом, а затем преобразует его в массив, если он уже не тот, у меня просто возникают проблемы, как поместить его в мой сервисный вызов. Щас у меня есть:
getResources: function(resourceId){
var self = this;
return Restangular.one('resource/resourceState', resourceId).get().then(function(response){
$filter('castToArray')(response.resources.resourceState.resourceTypes)
self.resources = response;
return self.resources;
});
},
Это не работает Я хочу сохранить целостность всего объекта ресурсов, но я хочу, чтобы метод / объект resourceTypes приводил к массиву, если присутствует только 1.
1 ответ
В случае, если кто-то наткнется на это, исправить это было довольно просто.
Я просто установил выше, чтобы:
getResources: function(resourceId){
var self = this;
return Restangular.one('resource/resourceState', resourceId).get().then(function(response){
self.resources = response;
self.resources.resourceState.resourceTypes = $filter('castToArray')(response.resourceState.resourceTypes);
return self.resources;
});
},
Мне просто нужно было установить метод self.resources для метода response с наложенным на него фильтром. Хорошо, я сделал.