当从控制器调用api时,获取回调中的返回值(在angular指令中)

时间:2017-05-09 11:37:08

标签: javascript angularjs angularjs-directive

我在Angularjs中创建了一个指令,我需要使用getUsers()方法,这样我就可以调用Controller的函数。

控制器的函数被调用。但是控制器的函数正在返回一些api调用的响应。我想在回调函数中获得该响应。如何实现?

以下是我的代码: 在指令中 - $ scope.getUsers({PARTNERID:obj._id});

IN CONTROLLER

scope.getUsers = function(id){

        if(id){
            var searchObj = {};
            searchObj.role = "serviceagent";
            searchObj.partner_id = id;
            userinfoFactory.get('',searchObj).then(function(data){
                $scope.phlebos = angular.copy(data.response);

            })
        }
    }

我想要返回$ scope.phlebos。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

也许尝试使用Promises并在您的控制器中执行类似的操作:

scope.getUsers = function(id){
    var deferred = $q.defer();
    if(id){
        var searchObj = {};
        searchObj.role = "serviceagent";
        searchObj.partner_id = id;
        userinfoFactory.get('',searchObj).then(function(data){
            $scope.phlebos = angular.copy(data.response);
            deferred.resolve($scope.phlebos);
        })
    }
    return deffered.promise;
}

在你的指令中:

$scope.getUsers({partnerID:obj._id}).then(function(response) {
    // Do whatever you want with the returned value
});