Подтвердить что ты не робот

Как работает ng-selected?

Вот фрагмент. Q2 выбран, как я ожидаю.

<select name="quarter" ng-model="Quarter" >
    <option value="1" >Q1</option>
    <option value="2" ng-selected="Quarter=='Q1'">Q2</option>
    <option value="3">Q3</option>
    <option value="4">4</option>
</select>

Изменение 'Q1' до 'Q2 'ничего не делает, как я ожидал. Теперь добавление ng-selected="Quarter=='Q1'" НЕ ВЫБРАТЬ Q1, пока я не удалю ng-selected="Quarter=='Q2"

WTF. Как это должно работать?

4b9b3361

Ответ 1

Если вы поместите выбранный ng в элемент опции, ваш выбор будет выбран, когда значение ng выбрано верно. В вашем случае опция Q2 выбирается, когда Quarter равен Q1.

Если вы хотите выбрать значение, переданное в Quarter, вы должны поместить выбранный ng на элемент select:

<select name="quarter" ng-model="Quarter" ng-selected="Quarter"
        ng-options="Quarter for Quarter in Quarters" >
    {{Quarter}}
</select>

Посмотрите выберите директивную документацию.

Ответ 2

<select ng-model="hour">
    <option ng-selected="hour == $index" ng-repeat="h in (((b=[]).length=24)&&b) track by $index" ng-bind="$index">{{h}}</option>
</select>

если вы хотите выбрать в течение 24 часов, вы можете сделать это.

Ответ 3

вот так:

<body ng-controller="MainCtrl">
  {{referenceNumber}}
    <select ng-model="referenceNumber">
            <option ng-selected="!referenceNumber">Default</option>
            <option ng-repeat="number in numbers track by $index" ng-value="number">{{number}}</option>
        </select>
  </body>

"Я считаю, что одной из основных причин для ngSelected является установка по умолчанию значения в зависимости от того, правильно ли установлена ​​модель". joshkurz прокомментировал 3 марта 2014 г.

Таким образом, правильным способом было бы полагаться на ng-модель только в вашем случае. Правильный способ сделать то, что вы пытаетесь сделать (предварительно выбрать вариант), выглядит следующим образом:

<select ng-model="purchase.product" name="purchase.product" class="u-full-width" ng-options="product.id as product.name for product in products"></select>

Ссылка:

Ответ 4

Директива ng-selected принимает значение boolean. Вам просто нужно передать его значение true, чтобы он работал. Это не имеет никакого отношения к ng-модели тега <select>. Ниже приведен пример, который описывает то же самое.

<select name="quarter" ng-model="Quarter" >
    <option value="1" >Q1</option>
    <option value="2" ng-selected="true">Q2</option>
    <option value="3">Q3</option>
    <option value="4">Q4</option>
</select>

Это сделает выбор Q2 по умолчанию.