簡體   English   中英

在angularjs中同步執行函數

[英]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$resourceRestangular或類似的東西。 它們幾乎都可以與PromisesQ ,因此基本上您需要進行一系列方法調用

喜歡

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM