2016-02-26 44 views
0

我想知道如果有人可以幫助我嗎?我對角度還是比較陌生,並且有一個問題,即我的選擇控件最初並未選擇正確的值,而是更新後續更改。AngularJS - 模型沒有更新下面的異步調用

我的HTML如下:

<select class="form-control" ng-model="job.SalutationId" ng-init="job.SalutationId=0"> 
    <option value="0">Salutation</option> 
    <option ng-repeat="salutation in lookups.salutations" value="{{salutation.Id}}">{{salutation.Name}}</option> 
</select> 

我加載通過的WebAPI的對象,它表示一個工作,目前查找值 - 這是當前不在服務作爲其目前所有測試,但js的樣子:

function loadJob() { 
    $http({ method: 'GET', url: url + 'jobs/2' }). 
     then(function (response) { 
      $scope.lookups.salutations = response.data.Salutations; 
      $scope.job = response.data.Job; 
     }, function (response) { 
      displayJobErrorMessage(response.data || "Request failed"); 
     }); 
} 

的HTML控制被填充有來自查找值,job.SalutationId被設置爲一(I通過輸出值到另一個控制驗證了這一點),然而它沒有選擇自動MR直到我改變模型值w另一個控制。

我想要發生的是它自動選擇MR,因爲這是來自作業本身的值。

任何人都可以發現我出錯的地方嗎?我也嘗試使用$scope.$apply手動更新示波器,看看它是否有影響,但無濟於事。

在此先感謝。

卡爾

回答

0

學校的男孩錯誤的位真。

AngularJS在javascript中使用===操作符來檢查值和類型,並且選擇控件是基於字符串的,它不像我的作用域使用整數值。

要解決此問題,我只需將查找ID轉換爲範圍上的字符串值即可。

這應該不會在API端造成問題,因爲它會自動將字符串解析爲一個整數。