Javascript 如何在Angular.js中返回和数组JSON对象
想象一下以下JSON API:Javascript 如何在Angular.js中返回和数组JSON对象,javascript,arrays,json,angularjs,Javascript,Arrays,Json,Angularjs,想象一下以下JSON API: [ { "id": "1", "name": "Super Cateogry", "products": [ { "id": "20", "name": "Teste Product 1" }, { "id": "21", "name": "Teste Product 2" }, { "id": "
[
{
"id": "1",
"name": "Super Cateogry",
"products": [
{
"id": "20",
"name": "Teste Product 1"
},
{
"id": "21",
"name": "Teste Product 2"
},
{
"id": "22",
"name": "Teste Product 3"
}
]
}
]
我是否可以使用Angularjs仅返回产品数组
我有一个简单的服务调用JSON:
services.factory("ProductService", function($http) {
return {
"getProducts": function() {
return $http.get("/product/index");
}
};
});
在控制器中调用的,如下所示:
components.success(function(data) {
$scope.products = data;
});
但是它像预期的那样返回整个JSON,我需要它只返回“products”数组,这样我就可以遍历它
PS:这只是一个简单的例子来说明问题,我意识到在这种情况下我可以更改API以满足我的需要,但这不是重点。您只需将产品数组分配给scope属性
components.success(function(data) {
$scope.products = data[0].products;
});
你可以通过承诺来定制它,然后自己动手
"getProducts": function() {
var promise = $q.defer();
$http.get("/product/index").success(function(data){
promise.resolve(data && data.products);
}).error(function(msg){
promise.reject(msg);
})
return promise.promise;
}
如何使用:
getProducts().then(
function(data) {
$scope.products = data;
},
function(msg){
alert('error')
}
);
是的,我已经试过了,它返回为“未定义”,原因我无法解释。只是注意到它在数组中。更新的答案。哦,当然。我现在觉得自己很笨。谢谢你,伙计!这正是我拍摄的目的,简单而高效。从来没有承诺过,我必须检查一下。我应该在控制器中做什么才能保证获得数据?“成功”显然不存在于承诺中。更新如上。只要用承诺,然后(successFunc,errorFunc)有趣。我将来必须更多地研究承诺。现在,人们接受的答案是快速解决我的目标。谢谢你的提示,我以后会记住的。