Угловая кнопка переключателя установлена на первый вход

0

Я только что построил динамическую (данные из API) форму, которая включает ng-repeat для создания загрузки переключателей. Он работает нормально, но у меня возникают трудности с установкой первого переключателя для проверки. Может ли кто-нибудь помочь?

<div ng-repeat="carrier in options.shipping.methods">
    <fieldset>
        <input type="radio" id="{{ carrier.slug }}" name="{{ carrier.slug }}" value="{{ carrier.slug }}" ng-model="data.shipping" />
        <label class="radio" for="{{ carrier.slug }}">{{ carrier.description }}</label>
    </fieldset>
</div>

Могу ли я установить ng-init в $index == 0?

Теги:
radio-button
angularjs-ng-repeat

1 ответ

0
Лучший ответ

Вы должны добавить checked атрибут к вводу, когда вам это нужно, используя ngChecked.

проверьте эту ссылку

<div ng-repeat="carrier in options.shipping.methods">
    <fieldset>
        <input type="radio" id="{{ carrier.slug }}" name="{{ carrier.slug }}" value="{{ carrier.slug }}" ng-model="data.shipping"  ngChecked="carrier.isSelected" />
        <label class="radio" for="{{ carrier.slug }}">{{ carrier.description }}</label>
    </fieldset>
</div>

В вашем контроллере вы сделаете что-то вроде

$scope.options.shipping.methods[0].isSelected = true;

ИЛИ вы можете написать чек прямо в ngChecked

ngChecked="carrier.someProperty != null"
  • 0
    Это будет работать, если это был список переключателей, но, поскольку это ng-repeat, и передаваемые данные могут быть в произвольном порядке, это не сработает, так как это установит ng-checked на все переключатели.
  • 0
    @Tomaltach в carrier добавьте логическое свойство и передайте его ngChecked, тогда вы можете указать, какое из них следует проверить, передав true
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню