当范围发生变化时,保留角度的复选框状态

时间:2015-10-19 06:33:20

标签: angularjs checkbox retain

下面的

是一段代码:

<tr ng-repeat="data in ioStatusData">
    <td><input type="checkbox"></td>
    <td>{{data.IOStatusName}}</td>
    <td>{{data.IOLabel}}</td>
    <td>{{data.IOStatus}}</td>
    <td>{{data.TestResult}}</td>
</tr>

scope.ioStatusData每5秒更新一次。即使scope.ioStatusData发生更改,我也希望保留复选框状态(已选中或未选中)。

2 个答案:

答案 0 :(得分:0)

你需要

<input type="checkbox" ng-model="myCheckboxIsChecked[$index]">

并在控制器中:

$scope.myCheckboxIsChecked = [];

即使数组的值发生变化,你的checbox状态也会存在。

答案 1 :(得分:0)

您正在尝试检查行是否已选中或未忽略该数据。在控制器中定义一个存储行状态的对象,如

$scope.rowState = {};

并更改checkbox模型,如

<input type="checkbox" ng-model="rowState['index_' + $index]" />

实际上ng-repeat创建动态rowState对象,例如rowState.index_0rowState.index_1

检查Demo