2013-10-24 3 views
1

Пожалуйста, взгляните на this plunkr.Angularjs - select/options - установить выбор по умолчанию после применения фильтра

У меня есть несколько избранных списков, которые отфильтровываются на основе некоторых простых условий. Существует список (Растений), который динамически создается, нажимая кнопку «Добавить». Когда каждая строка добавляется, я бы хотел, чтобы выбор автоматически выбирал первый элемент в списке. Имейте в виду, что есть фильтры, и элементы меняются в зависимости от списка выбора в верхней части формы (SalesOrg).

Предпочтительно, я хотел бы сделать это, не используя DOM в контроллере.

ОБНОВЛЕНИЕ: Посмотрите на это simpler plunk. Выберите «Техас» в качестве состояния. Выпадающее меню города было соответствующим образом отфильтровано. Первоначальный выбор не работает, потому что исходная выпадающая переменная (DropDownData.Cities) больше не является источником выбора - она ​​была отфильтрована.

ответ

1

Просто используйте ng-init как:

<select class="form-control" id="selSalesOrg" ng-model="SelData.SalesOrg" 
    data-ng-options="salesOrg.id as salesOrg.Description for salesOrg in DropDownData.SalesOrgs" 
    ng-init="SelData.SalesOrg = DropDownData.SalesOrgs[0].id"> 
    </select> 

Фиксированный PLunker

Второй путь вместо ng-init директива добавить в свой контроллер что-то вроде:

$scope.SelData.SalesOrg = DropDownData.SalesOrgs[0].id; 

комментарий **

Поскольку вы используете фильтр, мы не можем взять первый элемент, но сначала в списке после фильтрации

+0

спасибо за это. Кроме того, взгляните на этот простой сюжет: http://plnkr.co/edit/hWy14wHXzeyuhTMJqT4S?p=preview. Это именно то, что я хочу: я хочу получить доступ к фильтруемому списку. В этом плунге выберите «Техас», а ng-init больше не работает, потому что 0-й элемент из исходного списка больше не находится в «select». – Faredoon

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