Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS中的事件调用后,数据属性变为true_Javascript_Angularjs_Arrays_Controller_Attributes - Fatal编程技术网

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.