Angular JS: вход [радио] не работает

0

Вот мой код:

<div ng-controller="TestController">
    <input ng-repeat="item in array" ng-model="selected.name" value="{{item.name}}" type="radio"></input>
</div>
<script type="text/javascript">
    var app = angular.module('app', []);
    app.controller('TestController', function ($scope) {
        $scope.array = [{
            name: 'lee',
            seq: 1,
        }, {
            name: 'tom',
            seq: 2,
        }, {
            name: 'jack',
            seq: 3,
        }];

        $scope.selected = $scope.array[0];
    });
</script>

Когда страница отображается, флажок по умолчанию установлен правильно. Но он не может быть отменен, и я могу переключаться между двумя другими флажками? Как я могу исправить эту проблему?

Теги:
checkbox
radio

1 ответ

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

ng-repeat создайте новую область, чтобы определить родительскую область.

для получения дополнительной информации см. https://docs.angularjs.org/api/ng/directive/ngRepeat

var app = angular.module('app', []);
    app.controller('TestController', function ($scope) {
        $scope.array = [{
            name: 'lee',
            seq: 1,
        }, {
            name: 'tom',
            seq: 2,
        }, {
            name: 'jack',
            seq: 3,
        }];

        $scope.selected = $scope.array[0].name;
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="TestController">
  <div ng-repeat="item in array">
     <input type="radio" ng-model="$parent.selected"  
    ng-value="item.name" > 
  </div>
</div>
  • 0
    было бы значение ng «item.item», если массив похож на ['blah', 'blah', 'blah']?
  • 0
    нет. просто используйте ng-value = "item"

Ещё вопросы

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