AngularJS заполнить $scope.selected объектом из <select>

У меня проблема с заполнением области правильными данными и сохранением правильного атрибута.

У меня есть небольшой PHP-скрипт, который возвращает идентификатор, имя и время в виде массива json.

 {
  "times": [
    {
      "id": "myID",
      "name": "myName",
      "time": "40:00:00"
    },
    ...(10 more objects)
}

Я хочу создать выпадающий элемент с именем в качестве имени и идентификатором в качестве значения. Я сделал это более ng-repeat и это работает очень хорошо.

<select name="StPl_Code" class="form-control" id="field-stpl-name" ng-model="selected">
    <option ng-repeat="i in times"  value="{{i.id}}">{{i.name}}</option>
</select>

Моя проблема в том, что я хочу сохранить выбранное i в $scope.selected использовать его значение времени для другого поля ввода без потери значения в атрибуте значения

Вот мой угловой код

  app.controller('auftraegeCrtl', function($scope, $http){
      $scope.selected = '';
      $http.get('index.php?page=times&json=true').success(function(data, status, headers, config){
        $scope.times = data.times;
      }).error(function(data, status, headers, config){
      });
  });

3 ответа

Решение

Вы захотите использовать директиву ng-options, например так:

<select name="StPl_Code" class="form-control" id="field-stpl-name" ng-model="selected" ng-options="i.id as i.name for i in times"></select>

Вы можете увидеть это работает здесь

Попробуй это:

 $scope.selected = {};

вместо:

 $scope.selected = '';

Вместо этого используйте "Ng-опции".

<select ng-options="i as i.name for i in times track by item.id" ng-model="selected"></select>

Это установит $scope.selected для выбранного объекта

Другие вопросы по тегам