Javascript 角度ng禁用复选框不使用动态源更新

Javascript 角度ng禁用复选框不使用动态源更新,javascript,angularjs,checkbox,Javascript,Angularjs,Checkbox,我有几个从数组源动态生成的复选框: /*js*/ $scope.arrondissements = JSON.parse(' [{"name":"4e","checked":false,"disable":true}, {"name":"5e","checked":false,"disable":false}, {"name":"11e","checked":false,"disable":false}, {"nam

我有几个从数组源动态生成的复选框:

        /*js*/
        $scope.arrondissements =   JSON.parse('
    [{"name":"4e","checked":false,"disable":true},  
    {"name":"5e","checked":false,"disable":false},  
    {"name":"11e","checked":false,"disable":false},  
    {"name":"12e","checked":false,"disable":false},  
    {"name":"13e","checked":false,"disable":false},  
    {"name":"14e","checked":false,"disable":false},  
    {"name":"15e","checked":false,"disable":false},  
    {"name":"16e","checked":false,"disable":false},  
    {"name":"17e","checked":false,"disable":false},  
    {"name":"18e","checked":false,"disable":false},  
    {"name":"19e","checked":false,"disable":false},  
    {"name":"20e","checked":false,"disable":false}]');


        <!-- HTML -->
        <div ng-repeat="item  in arrondissements" class="checkbox-inline ">
             <label>
             <input type="checkbox" ng-disabled="{{item.disable == true}}"
                      value="{{item.checked}}" ng-model="item.checked" >
              <span>{{item.name}}</span>
             </label>
        </div>
/*js*/
$scope.arondissements=JSON.parse('
[{“name”:“4e”,“checked”:false,“disable”:true},
{“name”:“5e”,“checked”:false,“disable”:false},
{“name”:“11e”,“checked”:false,“disable”:false},
{“name”:“12e”,“checked”:false,“disable”:false},
{“name”:“13e”,“checked”:false,“disable”:false},
{“name”:“14e”,“checked”:false,“disable”:false},
{“name”:“15e”,“checked”:false,“disable”:false},
{“name”:“16e”,“checked”:false,“disable”:false},
{“name”:“17e”,“checked”:false,“disable”:false},
{“name”:“18e”,“checked”:false,“disable”:false},
{“name”:“19e”,“checked”:false,“disable”:false},
{“name”:“20e”,“checked”:false,“disable”:false}];
{{item.name}
复选框生成正确,但当源更新时,复选框不会更新

/*js*/
$scope.disableCb = function () {
      $scope.arrondissements[5].disable = true;
      $scope.arrondissements[6].disable = true;
      $scope.arrondissements[7].disable = true;
}

<!-- HTML -->
<button ng-click="disableCb()">disable</button>  
/*js*/
$scope.disableCb=函数(){
$scope.arndissements[5]。disable=true;
$scope.arndissements[6]。disable=true;
$scope.arndissements[7]。disable=true;
}
使残废
你能告诉我为什么以及如何修理它吗


我提出了一个建议:

您应该在控制器函数中定义$scope.disableCb函数

function controller( $scope) {
    var vm = $scope;

     $scope.title = 'controller';

$scope.arrondissements =   JSON.parse('[{"name":"4e","checked":true,"disable":true},{"name":"5e","checked":false,"disable":false},{"name":"11e","checked":false,"disable":false},{"name":"12e","checked":false,"disable":false},{"name":"13e","checked":false,"disable":false},{"name":"14e","checked":false,"disable":false},{"name":"15e","checked":false,"disable":false},{"name":"16e","checked":false,"disable":false},{"name":"17e","checked":false,"disable":false},{"name":"18e","checked":false,"disable":false},{"name":"19e","checked":false,"disable":false},{"name":"20e","checked":false,"disable":false}]');

$scope.disableCb = function () {

         $scope.arrondissements[5].disable = true;
         $scope.arrondissements[6].disable = true;
         $scope.arrondissements[7].disable = true;
      }

    }
我还修复了您使用指令的方式。我已删除复选框上的
属性,因为它们与
ng model
是冗余的。 我也修复了你对ng disabled的用法

 <div ng-repeat="item  in arrondissements" class="checkbox-inline ">
                    <label>
                        <input type="checkbox" ng-disabled="item.disable"
                                ng-model="item.checked" >
                        <span>{{item.name}}</span>
                    </label>
                </div>

              <button ng-click="disableCb()">disable</button>  

{{item.name}
使残废
看到我的叉子在你的车上了吗