0
我有一個具有productsCtrl.js,看起來像一個angular.js應用:資源查詢問題
app.controller('ProductsCtrl', ['$scope', 'Api', function($scope, Api) {
$scope.products = Api.Product.query();
//Delete Product
$scope.deleteProduct = function(productId, idx) {
Api.Product.remove({productId: productId});
$scope.products.splice(idx, 1);
};
}]);
和API工廠:
app.factory('Api', ['$resource', function($resource) {
return {
Product: $resource(
'/api/products/:productId',
{productId: '@productId'},
{'query': {method: 'GET', isArray: false }}
),
Item: $resource(
'/api/items/:itemId',
{itemId: '@itemId'}
)
};
}
]);
如果我更改爲$scope.products = Api.Product.get();
,並嘗試它說的拼接方法TypeError: Object #<Resource> has no method 'splice'
。
如果我把代碼相同的(就像代碼是如何上面顯示,但改變IsArray的到真正,然後我得到的錯誤:Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object
什麼是$ scope.products?你確定它是一個數組?你用調試工具teste?什麼如果你在console.log($ scope.products)之前嘗試拼接()它會發生? – JeffryHouser
@the_在'$ resource'上調用'query'隱式設置'isArray'爲'true'。另外,控制器中的'$ scope.products'會自動初始化爲一個空對象或數組。有關更多詳細信息,請參閱http://docs.angularjs.org/api/ngResource.$resource上的文檔。 – miqid
只是建議))試試restangular.js https://github.com/mgonto/restangular –