2016-06-17 4 views
0

내 응용 프로그램에서 angularjs 1.0을 사용하고 있습니다. 내 cshtml 페이지 직원의 변화에 ​​angularjs에서 동기식으로 실행되는 함수

<select tabindex="2" id="Employee" ng-model="models.SelectedEmployee" ng-change="changeEmployee()" disabled="disabled" class="Answer" size="6"> 
<option value="-1" selected="selected">Select</option> 

<option ng-repeat="option in models.Employees | orderBy:'EmployeeName'" value="{{option.EmployeeKey}}"> {{option.EmployeeName}} - {{option.EmployeeKey}}</option> 

</select> 

을에 드롭 다운을 가지고, 내가 함수 changeEmployee()를 호출하고

$scope.changeEmployee = function() { 

$scope.ClearMessages(); //function to clear message displayed in label field (lblMessage) 
$scope.FetchAllEmployeeData(); //fetch Employee details like address, dependents details 


} 

FetchAllEmployeeData 기능은 데이터베이스에서 emaployee 세부 사항을 끌어 및 세부 선물에가있는 경우 데이터베이스, 레이블 필드에 메시지 추가 (lblMessage) 예 주소 정보를 찾았습니다. 종속 항목 세부 정보가 있습니다.

사용자가 드롭 다운에서 직원 이름을 선택하면 모든 것이 잘 작동합니다. 그러나 사용자가 키 버튼을 사용하여 각 Employee를 빠르게 탐색 할 때 FetchAllEmployeeData 함수는 모든 직원에 대한 메시지를 계속 추가합니다. FetchAllEmployeeData가 ClearMessage 함수가 완료되기를 기다리지 않기 때문이라고 생각합니다.

이 시나리오를 도와 드리겠습니다.

+0

그가 도움이 –

+1

를 해결하는 것 바이올린을 만드십시오 http, ClearMessages() 호출은 FetchAllEmployeeData의 $ http.success 내부로 이동합니다 ... –

+0

감사 이동권 !! 그 지금 일하고있어. –

답변

0

내가 $scope.FetchAllEmployeeData();는 아약스 요청 및 일부 정보를 얻는 않습니다 이해, 그래서 그런 어떤 $http 또는 $resource 또는 Restangular 또는 무언가를 사용하기 때문에. 은 거의 모두가 Promises 또는 Q과 함께 일할 수있는, 그래서 기본적으로 당신은 방법의 체인이 호출을 할 필요가

같은 FetchAllEmployeeData 기능이 $를 사용하는 경우

// $scope.FetchAllEmployeeData = function(){ return $http.get(....)}; 
$scope.FetchAllEmployeeData().then($scope.ClearMessages); 
관련 문제