Javascript 如何访问$http.post成功应用的函数?

Javascript 如何访问$http.post成功应用的函数?,javascript,jquery,angularjs,angularjs-directive,angularjs-factory,Javascript,Jquery,Angularjs,Angularjs Directive,Angularjs Factory,当我点击一个按钮时,我触发了这个功能 .controller('Formctrl', function($scope, ichrisLayoutLeavebalanceService){ $scope.listRowSelected = function (list, item) { var det = { detnumber: item.detnumber }; ichrisLayoutLeavebalanceService.callPost(det)

当我点击一个按钮时,我触发了这个功能

.controller('Formctrl', function($scope, ichrisLayoutLeavebalanceService){
    $scope.listRowSelected = function (list, item) {   
       var det = { detnumber: item.detnumber };
       ichrisLayoutLeavebalanceService.callPost(det).success(function (data){ ichrisLayoutLeavebalanceService.leaveBalanceProcess(); });
    };
});
但是,似乎我无法访问leaveBalanceProcess()。似乎只有工厂零件才可以共享。这是我的控制器和工厂代码,可以通过上面的代码访问

.directive(/*code... code...*/{/*code... long code...*/
   /*code... code...*/},
   controller : ($scope, ichrisLayoutLeavebalanceService) {

     function par(){
     //code... code...
     }
     $scope.leaveBalanceProcess = function (){/*codes... codes... */}

     $scope.build = function () {
         ichrisLayoutLeavebalanceService.callPost(par()).success(function (data) { $scope.leaveBalanceProcess(data) });
     }

     $scope.build();
   }
})
.factory('ichrisLayoutLeavebalanceService', ['$http', function ($http) {

    var leaveBalanceService = {};

    leaveBalanceService.callPost = function (par) {
        return $http.post('/api/values/entries/LeaveBalanceEntries', par);
    }

    return leaveBalanceService;
}]))


那么现在我如何访问整个控制器呢?

您必须使用ichrisLayoutLeavebalanceService.callPost(),因为在工厂中您返回了leaveBalanceService对象是的,正如您所看到的,我已经使用了它。实际上,我也调试了它,调用也正常工作。然而,唯一的工厂部件是$http.post('/api/values/entries/LeaveBalanceEntries',par)。我需要的是获得成功及其功能。成功(函数(数据){$scope.leaveBalanceProcess(数据)});必须工作,尝试编写一个简单的plunkrI不知道它如何工作,在success函数中调用ichrisLayoutLeavebalanceService。在ichrisLayoutLeavebalanceService工厂中未定义leaveBalanceProcess()。