javascript - Angularjs:当模型更改时,单选按钮检查状态无法绑定(bind)模型值

标签 javascript angularjs

页面加载后,模型和单选按钮正确显示。

但是,当单击按钮更改列表项的排名时,单选按钮的选中状态出现问题。可以看到模型值是正确的,显示在左侧。

那么,为什么按钮没有被选中以及如何修复它?

非常感谢

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 仅根据列表项在数组中的位置来跟踪它们。

Plunker 演示 - http://plnkr.co/edit/Hszr5FjKblQGip7kc8Q1?p=preview

关于javascript - Angularjs:当模型更改时,单选按钮检查状态无法绑定(bind)模型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32860492/

相关文章:

javascript - JS中这两种编码风格有什么区别?

C# Web API 路由与 Angular 路由混合

angularjs - 如何在Angular JS中发出同步http请求

javascript - yarn 和 npm 的主要区别是什么?

javascript - jQuery 在 Opera 中找不到一致的禁用元素

javascript - 如何获取您正在使用的当前对象

javascript - 使用 jQuery 从字母中产生波浪

javascript - 不能在 img 标签内使用 base64 图像吗?

AngularJS 使用指令编译 html 并以字符串形式输出?

javascript - Angular JS+Laravel -- 在 URL::route 外观中回显 Angular 数据