는 당신이 아마하고 싶은 것은 제 생각 엔, 로그를 이동하고, 다시로드, 당신이 '에 전달하는 익명 콜백 함수의 내부 : 여기
myApp.controller('ordersCtrl',
function ordersCtrl($scope, ngTableParams, dealerData, costElementData, totNoData, $http, $ekathuwa, $rootScope, $location, userService, $filter){
$scope.formWO = {};
$scope.addWorkOrder = function(){
$scope.modalHeader = "ADD NEW WORK ORDER";
$scope.modalType = "Add";
$ekathuwa.modal({
id: "modalWO",
scope: $scope,
templateURL: "./tpl/modal-wo.html"
});
$scope.$watch('formWO.dealer', function(newDealer, oldDealer){
if (newDealer === oldDealer) {
return;
}
$http.get('api/profile/'+$scope.formWO.dealer).
success(function(data, status, headers, config){
$scope.formWO.outletno = data.outletno;
});
if ($scope.dealer === newDealer) {
return;
}
});
}
$scope.submitAddWorkOrder = function(cost_element, desc, ets, etc, cost_estimate, dealer){
totNoData.getTotNo(function(noData){
$scope.formWO.totno = noData;
});
console.log($scope.formWO.totno);
$scope.tableParams.reload();
}
});
은 공장 getToNo '. 마찬가지로 : 그대로
$scope.submitAddWorkOrder = function(cost_element, desc, ets, etc, cost_estimate, dealer){
totNoData.getTotNo(function(noData){
$scope.formWO.totno = noData;
console.log($scope.formWO.totno);
$scope.tableParams.reload();
});
}
, 로그 및 재로드는 콜백이 호출 전에 일어나고있다. 이 같은 갈 것 순서 :
- 호출 getTotNo 방법
- 는 submitAddWorkOrder
- 로그 $의 scope.formWO.totno (정의)
- 호출에서
- 단계 다시 HTTP 요청을 보내 $ scope.tableParams.reload(); ... 이벤트 루프/응답이 수신
- HTTP 다이제스트, 성공 방법은
- 콜백이
- $ scope.formWO.totno는
승리에 대한 비동기로 설정되어 호출이라고합니다!
는 편집 : 패턴
더 나은는 $ HTTP 호출에서 반환 약속을 반환하는 것입니다.
그래서 서비스에 변경 :
getTotNo: function(){
return $http({method: 'GET', url: 'api/totno'});
}
을 그리고 당신의 컨트롤러 기능을 리팩토링 :
$scope.submitAddWorkOrder = function(cost_element, desc, ets, etc, cost_estimate, dealer){
totNoData.getTotNo().success(function (data) {
$scope.formWO.totno = noData;
console.log($scope.formWO.totno);
$scope.tableParams.reload();
}).error(function (data, status, headers, config) {
$log.warn(data, status, headers, config);
});
}