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 для выбранного объекта