Невозможно заполнить 2-ю инструкцию select
у меня есть оператор 2 select, который первый select заполняется моим первым запросом webservice. Пользователь выбирает нужные данные в первом select, в котором вызовет метод onChange для получения первого объекта select, снова запустите webservice для получения другого набора данных и заполните 2-ю инструкцию select.
HTML-код:
<div class="input-label">
Select Kittens:
</div>
<select
ng-model ="options"
ng-options ="option.name for option in options"
ng-change="onChange(options)">
<option>--</option>
</select>
<br>
<div class="input-label">
Select Age:
</div>
<select
ng-options ="detail.age for detail in details">
<option>--</option>
</select>
:
.controller("ctrl",['$scope',function($scope){
$scope.options = [
{id:1, name:'typeA'},
{id:2, name:'typeB'},
{id:3, name:'typeC'},
{id:4, name:'typeD'}
]
$scope.onChange = function(item){
console.log("Hi world!");
console.log(item);
$scope.details = [
{id:1, age:'11'},
{id:2, age:'10'},
{id:3, age:'9'},
{id:4, age:'6'}
]
};
}])
вопросы:
1) После выбора 1-го выбора , стоимость исчезает из поля выбора, но значение (объект) успешно передается функции onChange
2) невозможно заполнить 2-е поле выбора
Я создал plunkr для репликации моей проблемы (без веб-сервиса). Спасибо!
3 ответов
директива select используется вместе с
ngModel
обеспечить привязка данных между областью действия и<select>
контроль (в том числе установка значений по умолчанию).
кроме того, вам нужно изменить 1st select ng-model
as ng-repeat
происходит options
и ng-model
также совпадает с options
, следует изменить его на someOpetion
разметки
<select ng-model="someOpetion" ng-options="option.name for option in options" ng-change="onChange(options)">
<option>--</option>
</select>
<br>
<div class="input-label">
Select Age:
</div>
<select ng-options="detail.age for detail in details" ng-model="someDetails">
<option>--</option>
</select>
используйте этот код: демо
<div class="input-label">
Select Kittens:
</div>
<select ng-model="name" ng-options="option.name for option in options" ng-change="onChange(name)">
<option>--</option>
</select>
<br>
<div class="input-label">
Select Age:
</div>
<select ng-model ="age" ng-options="detail.age for detail in details">
<option>--</option>
</select>
имя вашего первого ng-model = "options"
но внутри контроллера вы также можете использовать $scope.options
как массив объектов.
кроме того, во вторую <select>
нет ng-model
. Но!--5--> должен ng-model
.
у меня есть твоя проблема.
вот фиксированная версия вашего plunker
вам нужно добавить два scope
переменной в контроллере, чтобы использовать их в качестве ng-model
.
проблема для вашего второго выбора была его нет ng-model
атрибут. Выберите должно быть