2015-07-05 2 views
1

Я использую поле выбора с директивой chosen. На моей странице пользователь может редактировать объект. Форма в bootstrap modal открывается с начальными значениями, которые пользователь может редактировать. Все входные формы требуются.Выбор не всегда соответствует исходной величине модели в AngularJS

В других моих блоках выбора у всех вариантов есть идентификаторы, которые правильно соответствуют идентификатору изначально установленного значения. Но в одной коробке есть только три варианта: все это только строки. Я не уверен, где проблема, но поле выбора соответствует только модели в 1 раз в 5 раз. Я пробовал решения в других подобных вопросах, но никто из них не работал. Я попытался создать пример в jsfiddle, но я не смог дублировать проблему там.

Пример HMTL:

<div class="modal-body"> 
    <form class="form-horizontal" name="editForm" novalidate> 
     <div class="form-group" ng-class="{'has-error': editForm.inputType.$invalid}"> 
      <label for="inputType" class="col-sm-2 control-label">Type:</label> 
      <select chosen 
        class="col-sm-7" 
        id="inputType" 
        name="inputType" 
        data-ng-model="formData.Type" 
        data-ng-options="type.Name as type.Name for type in typeList" 
        required> 
       <option value="">Select a type</option> 
      </select> 
     </div> 
    </form> 
</div> 

Функция контроллера, который загружает данные для редактирования:

$scope.edit = function(objectid) { 
     var req = { 
      method: 'GET', 
      url: $scope.url + 'node/' + objectid + '/' 
     } 
     $http(req).success(function(response) { 
      $scope.formData = response; 
      $scope.formData.id = objectid; 
     }); 
}; 

И TypeList структурирована:

$scope.typeList = [ 
    {"Name": "General"}, 
    {"Name": "Super"}, 
    {"Name": "Material"} 
]; 

Я ve испытал formData.Type === typeList[0].Name, когда тип General, и он возвращает true. Может ли проблема быть с выбранной директивой или загрузочным модальным?

ответ

0

Мне не удалось найти решение для этого, поэтому я просто добавил в список целочисленный идентификатор и основал выбор на нем. Он работает правильно.

Смежные вопросы