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()。