如何通过单击卡来触发复选框更改

时间:2015-10-16 14:04:31

标签: html angularjs

如果点击卡片,如何更改复选框值?

<input id="{{a.switchID}}" name="value1" style="display:none;" type="checkbox" ng-click="send(a.deviceID,a.pinNumber,a.switchID,value1)" ng-model="value1" ng-true-value="1" ng-false-value="0"></input>
<label style="margin-left: -15px;" for="{{a.switchID}}"></label>
<div class="card" ng-click="click(a.switchID)" style="margin:-59px 0px -2px 51px;height:64px;width:100%" ng-class="{'class1': value1 == false,'class2': value1 == true}"> <p style="margin-left:11px;font-size:18px;color:white;margin-top:8px;">{{a.alias}}</p>
    <p style="font-size:16px;color:white;margin-top:8px;margin-right:11px;" class="pull-right">{{stat}}</p>
</div>

1 个答案:

答案 0 :(得分:0)

你的$ scope.click(id)方法应该将字段的ng-model,$ scope.value1设置为false值,当它为真时,反之亦然。这可以通过以下代码获得:

$scope.value1 = 1 - $scope.value1;

您的代码还有一些其他问题,因为您在复选框中使用整数,但在卡片的ng-class中检查值1与布尔值。最好的方法可能是一直使用布尔值,这样可以简化你的条件:

<input id="{{a.switchID}}" name="value1" style="display:none;" type="checkbox" ng-click="send(a.deviceID,a.pinNumber,a.switchID,value1)" ng-model="value1"></input>
<label style="margin-left: -15px;" for="{{a.switchID}}"></label>
<div class="card" ng-click="click(a.switchID)" style="margin:-59px 0px -2px 51px;height:64px;width:100%" ng-class="{'class1': !value1,'class2': value1}"> <p style="margin-left:11px;font-size:18px;color:white;margin-top:8px;">{{a.alias}}</p>
    <p style="font-size:16px;color:white;margin-top:8px;margin-right:11px;" class="pull-right">{{stat}}</p>
</div>


$scope.click = function(id) { 
    $scope.value1 = ! $scope.value1;
}