请检查下面的代码,
angular.module('myApp', []).controller('myController', ['$scope',
function($scope) {
setTimeout(function() {
$scope.policies = [{
drivers: [{
gender: 'M'
}, {
gender: 'F'
}]
}, {
drivers: [{
gender: 'M'
}, {
gender: 'F'
}]
}];
$scope.$apply();
}, 1000)
}
]);
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js"></script>
<div ng-app='myApp'>
<div ng-controller='myController'>
<div ng-repeat='policy in policies'>
<div ng-repeat='driver in policy.drivers'>
Gender : M
<input type='radio' name='driverGender{{$index}}{{$parent.$index}}' value='M' ng-model='driver.gender' />F
<input type='radio' ng-model='driver.gender' name='driverGender{{$index}}{{$parent.$index}}' value='F' />
</div>
</div>
</div>
</div>
我试图在 2 个级别的 ng-repeat 中实现一对单选按钮。我可以检查单选按钮,值按预期更改。但如果这些值是从控件分配的,则只有最后一对单选按钮会被更新。当我将版本更改为 1.2.0 时,它工作正常。请检查下面的示例
angular.module('myApp', []).controller('myController', ['$scope',
function($scope) {
setTimeout(function() {
$scope.policies = [{
drivers: [{
gender: 'M'
}, {
gender: 'F'
}]
}, {
drivers: [{
gender: 'M'
}, {
gender: 'F'
}]
}];
$scope.$apply();
}, 1000)
}
]);
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.0/angular.js"></script>
<div ng-app='myApp'>
<div ng-controller='myController'>
<div ng-repeat='policy in policies'>
<div ng-repeat='driver in policy.drivers'>
Gender : M
<input type='radio' name='driverGender{{$index}}{{$parent.$index}}' value='M' ng-model='driver.gender' />F
<input type='radio' ng-model='driver.gender' name='driverGender{{$index}}{{$parent.$index}}' value='F' />
</div>
</div>
</div>
</div>
代码或任何替代方案有问题吗?