Angularjs $资源GET请求

时间:2017-07-18 16:45:49

标签: 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(JSON.stringify(list));
        console.log(list);
        console.log(list.length+"TAMANHO")
};

正在提取数据,它看起来像这样:

enter image description here

但是当我调用listdevices返回要迭代的对象列表时,对象没有保存在我的列表中。

非常感谢

1 个答案:

答案 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) {

})