2013-06-03 2 views
2

Я хочу динамически управлять количеством параметров под тегом select и автоматически выбирать последнюю добавленную опцию после обновления параметров.
Вот что я пробовал:Невозможно выбрать параметр сразу после обновления параметров.

<!DOCTYPE html> 
<html ng-app="plunker"> 

    <head> 
    <meta charset="utf-8" /> 
    <title>AngularJS Plunker</title> 
    <script> 
     document.write('<base href="' + document.location + '" />'); 
    </script> 
    <link rel="stylesheet" href="style.css" /> 
    <script data-require="[email protected]" 
      src="http://code.angularjs.org/1.0.7/angular.min.js" 
      data-semver="1.0.7"></script> 
    <script src="app.js"></script> 
    </head> 

    <body ng-controller="MainCtrl"> 
    <select ng-model="selectedOption"> 
     <option value="">-----Select an option-----</option> 
     <option ng-repeat="option in options" value="{{option.value}}"> 
     {{option.name}} 
     </option> 
    </select> 
    <button ng-click="addOption()">Add option</button> 
    </body> 

</html> 

При добавлении опции, переключатель выбора к ненулевому значению просуществовавшего. Кажется, что обновление значения выбора разрешено до обновления параметров.

Есть ли у кого-нибудь идеи, как я могу это исправить?

+0

Не могли бы вы предоставить Plunker (http://plnkr.co) или рабочую демонстрацию, на которую мы можем смотреть? –

+0

Интересно! У OP был скрипт plnkr: http://plnkr.co/edit/VhltCOZOYOtFW0WewKfQ?p=preview, который, кажется, был удален в редактировании. –

ответ

1

Вы заявляете: я хочу динамически управлять количеством параметров под тегом select и автоматически выбирать последнюю добавленную опцию после обновления параметров.

Вы можете сделать это, изменив HTML, как так (Edited после комментария):

<option ng-repeat="option in options" value="{{option.value}}" ng-selected="option.value==options.length-1"> {{option.name}}</option> 

Более подробной информации о ng-selected directive

Line 19 в сопроводительной вашей JS также должен быть удален - эта линии в настоящее время читается следующим образом:

$scope.selectedOption = $scope.options.length - 1; 
+0

Кажется, что «ng-selected» ожидает булев, а не индекс. Но в противном случае это было именно то, что я искал, большое спасибо! – Grouflon

+0

Вы правы - я исправил ответ. –

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