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

How to programmatically uncheck checkbox?

我想以编程方式取消选中复选框。我知道如何在 javascript 中使用它,但由于我使用的是 angular,我认为它是不同的。

这是 jsfiddle 的 link:https://jsfiddle.net/TKVH6/499/

这是我第一次使用 jsfiddle,所以如果您看不到脚本和 html,请告诉我。

这是html

<input type="checkbox" ng-model="v" ng-click="checkAll()" />
<button ng-click="x()">eto</button>

这是angular

$scope.x = function () {
    $scope.v.checked=false;
};

我知道有很多这样的问题,我已经试过了,但我做不到。

谢谢!

第一件事:您已经在 ul 上指定了控制器并绑定了 ul 外部按钮的单击事件,因此将 ng-controller 移到了 div。

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

$scope.x = function () {
    alert("x");
    $scope.Items[0].Selected=true;
};

Why we need to set Selected property of Items[i] while I have not declared?

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

<li ng-repeat="item in Items">
    <label>{{item.Name}}
        <input type="checkbox" ng-model="item.Selected" />
    </label>
</li>

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

这是工作 fiddle => link

<input type="checkbox" ng-checked="v" ng-click="checkAll()" />

在你的控制器中

$scope.v = true; // or false