Javascript AngularJS中的事件调用后,数据属性变为true
我有以下意见:Javascript AngularJS中的事件调用后,数据属性变为true,javascript,angularjs,arrays,controller,attributes,Javascript,Angularjs,Arrays,Controller,Attributes,我有以下意见: 还有一些ng单击上面的操作,我试图收集所有选中的复选框id,但在检查操作数据id属性变为真/假后,为什么 来自控制器的功能: collectSelectedAreas($event) { let selectedArea = $event.currentTarget.querySelectorAll('input:checked'); let areaIds = []; [selectedArea].forEach((el) => {
还有一些ng单击上面的操作,我试图收集所有选中的复选框id,但在检查操作数据id
属性变为真/假
后,为什么
来自控制器的功能:
collectSelectedAreas($event) {
let selectedArea = $event.currentTarget.querySelectorAll('input:checked');
let areaIds = [];
[selectedArea].forEach((el) => {
console.log(el.attributes['data-id'].value);
});
}
选项1:
<input type="checkbox" ng-model="area.selected" data-id="{{area.id}}" ng-true-value="area.id" ng-false-value="'NO'"/>
您可以选择另一个属性来跟踪复选框值(真/假),如下所示:
<input type="checkbox" ng-model="area.selected" data-id="{{area.id}}"/>
选项2:
<input type="checkbox" ng-model="area.selected" data-id="{{area.id}}" ng-true-value="area.id" ng-false-value="'NO'"/>
这意味着当选中复选框时
area.selected将取area.id值,否则字符串“NO” 您无需访问DOM即可选中复选框。您可以通过检查模型值area.id
来检查这一点。如果选中复选框,它将包含true
。然后,您可以遍历区域
对象,从中可以获取标识所选复选框id的键
<input type="checkbox" ng-model="area.id" />
这些复选框是否在ng repeat中?@ManuelObregozo yeap,它们在ng repeat中OK,但我需要唯一的ng模型值bc我也正在更改此元素的ng类您也可以使用ng类指令中的area.selected。我确信,如果您想保持id的值可用,那么跟踪带有area.id属性的复选框的ng模型不是一个好主意。
$scope.area.id==true if checkbox is selected.