restangular过滤器对象到数组

时间:2014-07-28 16:32:51

标签: arrays angularjs filter restangular

我有一个很大的资源对象,里面有很多方法,有更多的对象,等等。我也将xml转换为json。

特别是一个有时具有多个resourceTypes的resourceType对象。当存在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;
    });
},

这不起作用。我想维护整个资源对象的完整性,但是如果只存在1,我希望resourceTypes方法/对象转换为数组。

1 个答案:

答案 0 :(得分:0)

如果有人发现这个问题很简单。

我只是将上面的内容设置为:

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方法设置为响应方法,并在其上投放过滤器。好的,我已经完成了。