четверг, 6 марта 2014 г.

AngularJS: Не работает input[radio] в repeat.

Уже 5 месяцев плотно занимаюсь разработкой в WEB на AngularJS. Периодически сталкиваюсь с проблемами, решаю их.

Вчера столкнулся с проблемой на AngularJS. Проблемой с input[radio].

Хочу сделать такой radiobutton.


Но, input[radio] не работает в блоке ng-repeat. Ну не передает он значение в переменную. Всё делал как в документации. Не работает и всё тут.

Оказалось что надо делать так:

<div ng-repeat="scheme in schemes">
      <input type="radio" name="active" ng-model="rbtn.index" value="{{ $index }}">
</div>

В контроллере:
$scope.rbtn={index:0};

То есть, связка с такой вложенной переменной $scope.rbtn.index. В ней будет индекс выбранного значения. Потом сделаю перехват значения вот так:

$scope.$watch('rbtn.index', function (value) {
    if (!value) return;
    ...
});

Или можно директивой ng-change.

Комментариев нет:

Отправить комментарий