如何以编程方式取消选中复选框?

use*_*598 10 checkbox angularjs angular-ngmodel

我想以编程方式取消选中一个复选框.我知道如何在javascript中,但因为我使用角度,我认为它是不同的.

这是jsfiddle的链接:https://jsfiddle.net/TKVH6/499/

这是我第一次使用jsfiddle所以如果你看不到脚本和HTML,请告诉我.

这是html

<input type="checkbox" ng-model="v" ng-click="checkAll()" />
<button ng-click="x()">eto</button>
Run Code Online (Sandbox Code Playgroud)

这是棱角分明的

$scope.x = function () {
    $scope.v.checked=false;
};
Run Code Online (Sandbox Code Playgroud)

我知道有很多这样的问题,我已经尝试过了,但是我无法让它发挥作用.

谢谢!

Mur*_* VP 14

<input type="checkbox" ng-checked="v" ng-click="checkAll()" />
Run Code Online (Sandbox Code Playgroud)

在你的控制器中

$scope.v = true; // or false
Run Code Online (Sandbox Code Playgroud)


Jen*_*iya 11

第一件事:你已经在ul上指定了控制器并且在ul之外绑定了按钮的click事件,因此在div上移动了ng-controller.

第二件事:为了务实地检查它你需要设置$scope.Items[i].Selected = true;

$scope.x = function () {
    alert("x");
    $scope.Items[0].Selected=true;
};
Run Code Online (Sandbox Code Playgroud)

为什么我还没有声明时需要设置Items [i]的Selected属性?

这背后的原因是你的html绑定是这样的:

<li ng-repeat="item in Items">
    <label>{{item.Name}}
        <input type="checkbox" ng-model="item.Selected" />
    </label>
</li>
Run Code Online (Sandbox Code Playgroud)

这里的每一项都是来自Items数组的元素,这意味着你的复选框选中的值现在绑定到该对象的selected属性.即使您没有在Items集合中定义该属性,angular也会创建它并将其绑定到该属性.所以你需要设置该属性.我希望它会对你有所帮助.

这是工作小提琴=> 链接