2016-02-26 3 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 устанавливается в единицу (я проверил это путем вывода значения на другой элемент управления), однако он не не выбирает MR автоматически до тех пор, Я изменяю значение модели w в другом контроле.

Что бы я хотел, так это то, что он автоматически выбирает MR, поскольку это значение из самой работы.

Может ли кто-нибудь определить место, где я поступил не так? Я также попытался обновить область вручную, используя $scope.$apply, чтобы увидеть, было ли у нее аффект, но безрезультатно.

Заранее спасибо.

Carl

ответ

0

Немного школьной ошибки мальчика действительно.

AngularJS использует оператор === в javascript для проверки значения и типа и с помощью элемента управления select, который является строкой, поэтому ему не понравилось, что моя область применения использовала целочисленное значение.

Для решения проблемы я просто конвертирую идентификатор поиска в строковое значение области.

Это не должно вызывать проблемы со стороны API, поскольку оно будет автоматически анализировать строку как целое.