我在从angular到Java后端发出请求时遇到了一些问题。
我目前的代码是:
$scope.listdevices=function(){
var devices = $resource('http://localhost:8080/userapi/devices/:userId',{userId:'@userId'});
var list=devices.query({userId:$scope.userId});
console.log(JSON.stringify(list));
console.log(list);
console.log(list.length+"TAMANHO")
};
正在提取数据,它看起来像这样:
但是当我调用listdevices
返回要迭代的对象列表时,对象没有保存在我的列表中。
非常感谢
答案 0 :(得分:0)
.query将是异步的,因此您需要回调或承诺。无论如何,如果你想获得一条记录,你可以使用" get"。这里有一个例子:
myApp.factory('Device', function($resource) {
return $resource('http://localhost:8080/userapi/devices/:userId', {
userId: '@userId'
});
});
myApp.controller('YourCtrl', function(Device) {
Device.get({
userId: 1
}).$promise.then(function(res){
console.log(res)
})
})
.query用于查询您的端点,例如,如果您想搜索具有条件的设备。资源假定' http://localhost:8080/userapi/devices'将返回一个数组,而/:userId将返回一个对象。
根据您的评论扩展答案,如果您想查询某些用户的设备列表(返回数组),您确实会使用.query
Device.query({
userId: 1
}).$promise.then(function(results) {
console.log(results)
})
或者,如果您使用回调,则可以访问标题。
Device.query({
userId: 1
}, function(results, headers) {
})