use*_*284 7 radio-button angularjs ng-repeat angularjs-ng-repeat
使用ngRepeat时,可以使用以下代码创建3对单选按钮:
<div ng-repeat="i in [1,2,3]">
<input type="radio" name="radio{{i}}" id="radioA{{i}}" value="A" checked> A
<input type="radio" name="radio{{i}}" id="radioB{{i}}" value="B"> B
</div>
Run Code Online (Sandbox Code Playgroud)
由于某种原因,只有ngRepeat生成的最后一对单选按钮受checked
属性影响.
这是因为AngularJS更新视图的方式吗?有办法解决吗?
PSL*_*PSL 12
这可能是因为当浏览器呈现单选按钮时(因为ng-repeat扩展),所有无线电都具有相同的名称,即"name="radio{{i}}"
angular尚未扩展它,因此在所有无线电中都没有正确应用checked属性.因此,您需要使用,ng-attr-name
以便稍后添加扩展名称属性.所以尝试: -
<div ng-repeat="i in [1,2,3]">
<input type="radio" ng-attr-name="radio{{i}}" ng-attr-id="radioA{{i}}" value="A" checked> A
<input type="radio" ng-attr-name="radio{{i}}" ng-attr-id="radioB{{i}}" value="B"> B
</div>
Run Code Online (Sandbox Code Playgroud)
或者使用ng-checked="true"
以便在ng-checked指令扩展时应用checked属性.即例子
<input type="radio" name="radio{{i}}" ng-attr-id="radioA{{i}}" value="A" ng-checked="true"> A
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<div ng-repeat="i in [1,2,3]">
<input type="radio" ng-attr-name="radio{{i}}" ng-attr-id="radioA{{i}}" value="A" checked> A
<input type="radio" ng-attr-name="radio{{i}}" ng-attr-id="radioB{{i}}" value="B"> B
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7623 次 |
最近记录: |