Angularjs:当模型改变时,单选按钮检查状态绑定模型值失败
Angularjs: radio button check status failed to bind model value, when model changed
页面加载后,模型和单选按钮显示正确
但是,当单击按钮更改列表项的排名时,单选按钮选中的状态有一些错误。您可以看到模型值是正确的,它显示在左侧。
那么,为什么不检查按钮以及如何修复它?
多谢HTML:
<body ng-app="RadioApp">
<section ng-controller="RadioController">
<div ng-repeat="item in list">
<div ng-model="item.rank">Rank: {{$index + 1}}</div>
<div>
<span>{{item.flag}}</span>
<span><label><input type="radio" name="flag_{{$index}}" ng-model="item.flag" value="1">red</label></span>
<span><label><input type="radio" name="flag_{{$index}}" ng-model="item.flag" value="2">green</label></span>
<span><label><input type="radio" name="flag_{{$index}}" ng-model="item.flag" value="3">yellow</label></span>
<span><label><input type="radio" name="flag_{{$index}}" ng-model="item.flag" value="4">blue</label></span>
<span><label><input type="radio" name="flag_{{$index}}" ng-model="item.flag" value="5">pink</label></span>
</div>
</div>
<div>
<button ng-click="changRank()">change</button>
</div>
</section>
JS:
var app=angular.module("RadioApp", []);
app.controller("RadioController", function($scope){
$scope.list = [{flag:1},{flag:3},{flag:5}]
$scope.changRank = function(){
var targetRule = $scope.list.splice(2, 1);
$scope.list.unshift(targetRule[0]);
}
});
PS:我是一个新用户,很抱歉无法提供问题的捕获
啊,只需将中继器更改为
ng-repeat="item in list track by $index"
这将迫使Angular只根据它们在数组中的位置来跟踪你的list
项。
活塞演示- http://plnkr.co/edit/Hszr5FjKblQGip7kc8Q1?p=preview
相关文章:
- 即使我单击“确定”,模型弹出窗口扩展器仍保持打开状态
- backbone.js和模型中没有的状态
- 对“类型”和“状态”字段的更新会中断WSAPI中的模型检索
- 如何将值与$scope绑定,以从定义状态ui路由器的控制器中使用ng模型进行查看
- 正在加载ui路由器状态下的共享模型
- 选择输入更改不会影响模型状态
- 根据杜兰达尔中客户端视图模型的状态在页面视图模型中设置属性
- 如何基于Rx.ReplaySubject模型在React中设置初始状态
- 在ui路由器中的状态之间共享ng模型数据
- 以程序方式设置时,未在视图模型中填充选中状态
- UI状态是否应存储在模型或控制器中
- 模型弹出状态
- Angularjs:当模型改变时,单选按钮检查状态绑定模型值失败
- 骨干模型恢复到原始状态
- 在Angular.js中,模型状态应该存储在哪里?
- 在$scope模型的一个数组下,ng-repeat: collect状态创建的按钮列表
- 将客户端验证失败添加到ASP.. NET MVC模型状态
- AngularJS.中分离模型和视图状态
- 在复选框中显示模型的反转状态
- 模型视图控制器 - JavaScript 状态到函数序列处理(MVC,依赖函数)