AngularJS在条件有效的ng-repeat中禁用未选中的复选框

时间:2016-05-31 17:44:31

标签: javascript angularjs

我有一个使用来自WebService的ng-repeat显示的vochers列表,每个vocher都有一个关联的复选框,当我检查一个特定的复选框时,vocher的价格是扣除总价格,这个问题有问题是:"一旦总价格为0,我必须禁用未选中的复选框"目前我可以禁用它们,但我想保持选中的复选框启用,以便我可以再次取消选中它们。

HTML:

<div class="item" ng-class="{active:!$index}" ng-repeat="slide in MesAvoirs | limitTo: slideLength track by $index">
    <div class="mes_avoires" ng-repeat="a in MesAvoirs  | startFrom: ($index*5) | limitTo: 5">
        <input class="mes_avoires_checkbox" type="checkbox" ng-model="check" ng-change="avoirPrixCal($index,check,a)" id="chBx-{{$index}}" ng-disabled="uncheckVar" />
        <div class="left_av">
            <em>{{"MonProfilMesAvoirs.Num_Avoir" | translate}} {{a.NumeroAvoir}}</em>
            <strong>{{a.Montant}} {{"Globale.Devise" | translate}}</strong>
        </div>
        <div class="right_av">
            <em translate="MonProfilMesAvoirs.Valide_till"></em>
            <strong>{{a.DateValiditeJ }} {{a.DateValiditeM}} {{a.DateValiditeY}}</strong>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你想在总价格等于0时禁用未选中的复选框。

为什么你没有使用模型来获取复选框的状态(选中或取消选中)并测试类似的内容:

<input type="checkbox" ng-model="yourCtrl.checked[your_checkbox_number]" ng-disable="(yourCtrl.totalPrice <= 0 && !yourCtrl.checked[your_checkbox_number])/>