2015-09-10 34 views
1

为什么会我下面的错误有角uiRoute与$ httpBackend角uiRouter解决异常

工作,而这是我那被击中模拟服务:

$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; 
        } 
       } 
      }); 

这是我得到的例外:

productRes乌尔斯河无非然后

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)

+0

你的服务应该返回一个对象,而不是一个数组。 – bumpy

+0

产品是一个对象。 httpbackend将数组封装为数组 – eugenekgn

+0

当您在'$ resource'上调用'get'时,结果应该是一个对象。 – bumpy

回答

0

.filters()发送回的阵列不是对象。有我的违规行为!