[英]synchronously executing functions in angularjs
我在我的應用程序中使用angularjs 1.0。 我的cshtml頁面上有一個下拉列表
<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函數完成。
請幫助我處理這種情況。
據我了解$scope.FetchAllEmployeeData();
執行ajax請求並獲取一些信息,因此它使用一些$http
或$resource
或Restangular
或類似的東西。 它們幾乎都可以與Promises
或Q
,因此基本上您需要進行一系列方法調用
喜歡
// $scope.FetchAllEmployeeData = function(){ return $http.get(....)};
$scope.FetchAllEmployeeData().then($scope.ClearMessages);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.