基于单选按钮状态的角度JS高亮显示行

Angular JS highlight row based on radio button state

本文关键字:JS 高亮 显示 单选按钮 状态      更新时间:2023-09-26

我有一个包含一组行的表,使用ng repeat:

<tr ng-repeat="model in modelList" ng-class="{hilite : model.select}">

每行都有一个单选按钮,如下所示:

<input type="radio" name="modelGroup" ng-model="model.select">

单选按钮可以工作,但我正在尝试设置行的类,以使用单击的单选按钮突出显示行的背景。

Plunkr在这里:http://plnkr.co/edit/WSgC4Y4FmlzOr7Bfmlpp?p=preview

我已经用复选框这样做了好几次了,所以我不知道单选按钮出了什么问题。在中继器中,我认为每一行都有自己的范围,所以模型的状态会影响TR,不是吗?

给您的输入一个值,并将模型值更改为指向同一模型,因为它是一个单选按钮,数据需要是唯一的

<input type="radio" name="modelGroup" ng-model="selected.value" value="{{$index}}">

将ng类更改为

ng-class="{hilite : selected.value == $index}"

还要确保您在控制器中创建了变量,并且它应该属于不同的父级,否则ng重复会将其混淆为其数据的子级

$scope.selected = {value: null}

所以看起来像

    <tr ng-repeat="model in modelList" ng-class="{hilite : selected.value == $index}">
          <td>
             <input type="radio" name="modelGroup" ng-model="selected.value" value="{{$index}}">
          </td>
         <td>{{ model.NDPName }}</td>
         <td>{{ model.OEM }}</td>
         <td>{{ model.version }}</td>
         <td>{{ model.dateAdded }}</td>
         <td>{{ model.validUntil }}</td>
     </tr>

我已经更改了你的plunk