Фильтр прямоугольного объекта в массив

У меня есть этот большой ресурсный объект, в котором есть много методов с большим количеством объектов и т. Д. Я также конвертирую 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 с наложенным на него фильтром. Хорошо, я сделал.

Другие вопросы по тегам