id目标结构:"IDs":"[1,2,3,4,5,6]"
因为是在 ngFor 循环外用ID数组,取不到,所以赋给本地变量idAll.
当前的情况是以 items 为单位输出多个数组。
“位置1” 能以多个数组形式输出ID
“位置2” 只能输出最后一组ID
感觉现在 forEach() 用的不到位
如下:
getTotal(){
this.datas.forEach(item => {
this.arr = (item.items.filter(item1 => item1.checked).map(item1=> item1.id))
console.log(this.idAll); // 位置1
})
console.log(this.idAll); // 位置2
}
当前结构tem:
<div>
<label><input type="checkbox" [(ngModel)]="checked" (change)="selectAll()">全选</label>
<div style="padding-left:1em" *ngFor="let item of datas">
<input id="checkbox6" type="checkbox" [(ngModel)]="item.checked" (change)="selectItemAll(item)">
<label id="checkbox6">{{item.title}}</label>
<div style="padding-left:1em" *ngFor="let item1 of item.items">
<label><input type="checkbox" [(ngModel)]="item1.checked" (change)="selectItem(item1,item)">选择</label>
名称:{{item1.name}} 价格:{{item1.price}}
</div>
</div>
总价:{{getTotal()}
</div>
数据结构包括ID(即 item1.id):
public: idAll: number[];
checked = false;
datas = [{
checked: false,
title: '北京大学',
items: [{
checked: false,
name: '商品11',
price: 2,
id: 601
}, {
checked: false,
name: '商品12',
price: 3,
id: 602
}]
}, {
checked: false,
title: '复旦大学',
items: [{
checked: false,
name: '商品21',
price: 2,
id: 603
}, {
checked: false,
name: '商品22',
price: 3,
id: 604
}]
}];