Search code examples
angularjsangular-ui-routerhttpbackend

Angular uiRouter Resolve exception


Why do get I following error got Angular uiRoute while working with $httpBackend

This is my mock services that gets hit:

    $httpBackend.whenGET(editingRegex).respond(function (method, url) {

        var parameters = url.split('/');
        var length = parameters.length;
        var id = parseInt(parameters[length - 1]);

        var product = id > 0 ? products.filter(function (elem) {
            if (elem.productId === id) {
                return elem
            }
        }) : {'productId': 0};

        return [200, product, {}]
    });

This is my ui route code

$stateProvider.state('productDetail', {
                url: '/products/:productId',
                templateUrl: 'app/products/productDetail.html',
                controller: 'ProductDetailController as vm',
                resolve: {
                    productResource: 'productResource',
                    product: function (productResource, $stateParams) {
                        var productId = $stateParams.productId;
                        return productResource.get({productId: productId}).$promise;
                    }
                }
            });

And this is the exception that I am getting:

productResource is nothing more then

function productResource($resource) {
            return $resource('/api/products/:productId');
 };

Error: [$resource:badcfg] Error in resource configuration for action get. Expected response to contain an object but got an array (Request: GET /api/products/3)


Solution

  • .filters() sends back an array not an object. There's my violation!