Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从控制器调用api时,在回调(角度指令)中获取返回值_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 从控制器调用api时,在回调(角度指令)中获取返回值

Javascript 从控制器调用api时,在回调(角度指令)中获取返回值,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我在Angularjs中创建了一个指令,其中需要使用getUsers()方法,以便调用控制器的函数 控制器的函数被调用。但控制器的函数正在返回一些api调用的响应。我想在回调函数中得到该响应。如何实现 下面是我的代码: 指导- $scope.getUsers({partnerID:obj.\u id}) 内部控制器 scope.getUsers = function(id){ if(id){ var searchObj = {};

我在Angularjs中创建了一个指令,其中需要使用getUsers()方法,以便调用控制器的函数

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

下面是我的代码: 指导- $scope.getUsers({partnerID:obj.\u id})

内部控制器

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.freebos

我将如何做到这一点???

也许可以尝试在控制器中执行以下操作:

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
});
也许可以尝试在控制器中执行以下操作:

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
});

您可以简单地返回响应<代码>返回数据。看看这是否有帮助。我试过了,但没有成功。你可以简单地返回响应<代码>返回数据。看看这是否有帮助。我试过了,但没有工作。我试过了,但得到了typeerror,说。然后(函数(响应){})undefined@HetalSangoi您是否在控制器中注入了
$q
?太棒了!上一个错误是因为我写了
defered.promise
而不是
deferred.promise
否?我尝试了这个,但是得到了typeerror。然后(函数(响应){})的undefined@HetalSangoi您是否在控制器中注入了
$q
?太棒了!上一个错误是因为我写了
defered.promise
而不是
deferred.promise
否?