Javascript Angularjs$资源获取请求

Javascript Angularjs$资源获取请求,javascript,html,angularjs,Javascript,Html,Angularjs,我在从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(JSO

我在从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
返回要迭代的对象列表时,这些对象没有保存在我的列表中


非常感谢。查询将是异步的,所以您需要回调或承诺。不管怎样,如果您试图获取一条记录,请使用“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用于查询您的端点,例如,如果要搜索具有条件的设备。资源假定“”将返回数组,而/:userId将返回对象

根据您的评论扩展答案,如果您想查询特定用户的设备列表(返回数组),您确实会使用.query

Device.query({
  userId: 1
}).$promise.then(function(results) {

  console.log(results)

})
或者,如果使用回调,则可以访问头

Device.query({
  userId: 1
}, function(results, headers) {

})

问题还不是很清楚,但是看起来您需要将一些代码移到查询的成功回调函数中(现在您正在尝试同步执行异步代码。)嗯,谢谢您的帮助!但是我还是有些怀疑。。问题是我需要一个用户提供的设备阵列。。这就是为什么url将userId作为参数..这不可能吗?谢谢:)我会小心地建议使用JavaScript中的箭头函数。IE完全不支持它。