Angularjs 路由器解析异常

Angularjs 路由器解析异常,angularjs,angular-ui-router,httpbackend,Angularjs,Angular Ui Router,Httpbackend,为什么在使用$httpBackend时会出现get I following错误 这是我遇到的模拟服务: $httpBackend.whenGET(editingRegex).respond(function (method, url) { var parameters = url.split('/'); var length = parameters.length; var id = parseInt(parameters[length

为什么在使用$httpBackend时会出现get I following错误

这是我遇到的模拟服务:

    $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, {}]
    });
这是我的ui路由代码

$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;
                    }
                }
            });
这是我得到的一个例外:

productResource就是这样

function productResource($resource) {
            return $resource('/api/products/:productId');
 };
错误:[$resource:badcfg]操作的资源配置中出现错误
获取
。预期响应包含对象,但获得数组 (请求:GET/api/products/3)


.filters()
发回数组而不是对象。这是我的违规行为

.filters()
发回数组而不是对象。这是我的违规行为

您的服务应该返回一个对象,而不是数组。产品是一个对象。httpbackend将事物打包为数组当您在
$resource
上调用
get
时,结果应该是一个对象。要检查的显而易见的事情是返回的内容:
products.filter(function(elem){…})
。它可能返回一个与过滤器匹配的对象数组。您可能希望它只是一个对象,但它可能是一个包含一个对象的数组。但我不希望它返回一个数组。我想获取一个对象。您的服务应该返回一个对象,而不是数组。产品是一个对象。httpbackend将事物打包为数组当您在
$resource
上调用
get
时,结果应该是一个对象。要检查的显而易见的事情是返回的内容:
products.filter(function(elem){…})
。它可能返回一个与过滤器匹配的对象数组。您可能希望它只是一个对象,但它可能是一个包含一个对象的数组。但我不希望它返回一个数组,我希望得到一个对象。