我在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。
我该怎么做?
答案 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
});