根据ng-repeat中的条件禁用div

时间:2016-04-28 08:46:32

标签: javascript angularjs ng-repeat

我有一个重复n次的ng-repeat ..

HTML:

<div ng-repeat="item in items">
<fieldset ng-disabled="item.activityId==lockResourceId">
<div>Hello</div>
</fieldset>
</div>

控制器:

onWebSocketFired();
  function onWebSocketFired(isLock){
        $scope.lockResourceId=isLock;
}

每次使用 lockResourceId 触发onWebSocketFired()函数时,如果等于 item.activityId ,则div将被禁用。 现在这发生在每个onWebSocketFired()调用的ng-repeat内的一个div。但是我想保持先前禁用的字段,直到除非调用任何其他调用。 有人可以建议修复吗?

1 个答案:

答案 0 :(得分:2)

由于您希望在新的字段集被禁用时禁用以前禁用的字段集,因此您希望以数组或对象的形式存储lockResourceId

<div ng-repeat="item in items">
  <fieldset ng-disabled="lockResourceId[item.activityId]">
    <div>Hello {{ item.activityId }}</div>
    <input type="checkbox">
  </fieldset>
</div>

然后在控制器中你会像这样使用它:

$scope.lockResourceId = {};

// Lock some id
$scope.lockResourceId[id] = isLock;