实体returns数据时回调

Callback when entity returns data

如何在 Device returns 数据时调用回调并将 this 传递给回调方法。

控制器

(function() {
   'use strict';

   angular
       .module('frontendApp')
       .controller('DeviceController', DeviceController);

   DeviceController.$inject = ['$scope', '$state', 'Device'];

   function DeviceController ($scope, $state, Device) {
       var vm = this;

       vm.devices = [];

       loadAll();

       function updateMap(flag){
       var self = this;//how to pass "this" from loadAll()?
       // logic to update map
       }

       function loadAll() {
           Device.query(function(result) {
               vm.devices = result;
               // Callback function here - updateMap(true)
           });
       }
   }
})();

服务

function Device ($resource, DateUtils) {
    var resourceUrl =  'api/devices/:id';

    return $resource(resourceUrl, {}, {
        'query': { method: 'GET', isArray: true},
        'update': { method:'PUT' }
    });
}

如前所述,您可以直接在 updateMap 函数内部使用 vm,如下所示。

(function() {
   'use strict';

   angular
       .module('frontendApp')
       .controller('DeviceController', DeviceController);

   DeviceController.$inject = ['$scope', '$state', 'Device'];

   function DeviceController ($scope, $state, Device) {
       var vm = this;

       vm.devices = [];

       loadAll();

       function updateMap(flag){
         console.log(vm.devices);
       }

       function loadAll() {
           Device.query(function(result) {
               vm.devices = result;
               // Callback function here - updateMap(true)
           });
       }
   }
})();