AngularJS 默认情况下不选中 ng-repeat 单选按钮

AngularJS ng-repeat radio buttons aren't checked by default

我正在尝试检查第一个索引,但它不起作用。我也尝试用 ng-init 来做到这一点。

 <div class="col-md-4" ng-repeat="category in categories">
        <label>
       {{category.Name}}

     <input type="radio" ng-checked="$index==0?true" name="pageNumber" ng-model="$parent.pageNumber" ng-value="category.Name" />
    </label>
  </div>

有人知道为什么吗?

尝试使用以下表达式 $index==0?true:false 或简单地 $index==0

ngChecked 不应与 ngModel 一起使用 (https://docs.angularjs.org/api/ng/directive/ngChecked)

你可以试试这个

<input type="radio" name="pageNumber" ng-model="$parent.pageNumber" ng-value="category.Name" />
</label>

当类别在您的控制器中填充时,您可以在之后添加以下代码

$scope.pageNumber = $scope.categories[0];

可以简单写ng-checked="$first"

  <div class="col-md-4" ng-repeat="category in categories">
        <label>
       {{category.Name}} - {{$index}} -
       <input type="radio" ng-checked="$first">
    </label>
  </div>

示例 http://jsfiddle.net/Lvc0u55v/8864/

ngChecked 期待 expression,所以说 ng-checked="$index == 0",你基本上是在说 checkbox将始终根据条件输出默认选中或取消选中。

删除 ng-value 因为您还可以使用 ng-model.

传递元素数据

工作 fiddle : http://jsfiddle.net/LYuCG/16/