我想以编程方式取消选中一个复选框。我知道如何在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>
这是角度
$scope.x = function () {
$scope.v.checked=false;
};
我知道有很多这样的问题,我已经尝试过了,但是我无法让它发挥作用。
谢谢!
答案 0 :(得分:14)
<input type="checkbox" ng-checked="v" ng-click="checkAll()" />
在您的控制器中
$scope.v = true; // or false
答案 1 :(得分:11)
第一件事:你已经在ul上指定了控制器,并在ul之外绑定了按钮的单击事件,因此在div上移动了ng-controller。
第二件事:为了实际检查,您需要设置$scope.Items[i].Selected = true;
$scope.x = function () {
alert("x");
$scope.Items[0].Selected=true;
};
为什么我还没有声明时需要设置Items [i]的Selected属性?
背后的原因是你的html绑定是这样的:
<li ng-repeat="item in Items">
<label>{{item.Name}}
<input type="checkbox" ng-model="item.Selected" />
</label>
</li>
此处的每个项目都是来自Items数组的元素,这意味着您选中的复选框值现在绑定到该对象的selected属性。即使您没有在Items集合中定义该属性,angular也会创建它并将其绑定到该属性。所以你需要设置该属性。我希望它会对你有所帮助。
这是工作小提琴=&gt; link