【发布时间】:2017-08-31 03:04:49
【问题描述】:
我有复选框(用户选择的值,选中)。所以我需要编辑这个复选框并将所有选定的值放入一个数组并将其发送到 post。
HTML
<div *ngFor="let item of officeLIST">
<div *ngIf ="item.officeID== userdata.officeID">
<input #office type="checkbox" id="office" name="office" class="form-control" value="{{item.officeName}}" checked (click)="officeSelection($event,$event.target.value)" > {{(item.officeName== "" ? "--No data--" : item.officeName)}}
</div>
<div *ngIf ="item.officeID!= userData.officeID">
<input #office type="checkbox" id="office" name="office" class="form-control" value="{{item.officeName}}" (click)="officeSelection($event,$event.target.value)"> {{(item.officeName== "" ? "--No data--" : item.officeName)}}
</div>
</div>
<button type="button" class="btn btn-primary"(click)="updateOffice(userData.officeID)"> Save </button>
点击功能(添加选中值和删除未选中值)
officeSelection(event: any, value) {
if (event.target.checked === true)
{
this.officeArray.push(value);
}
else {
this.officeArray.splice(this.officeArray.indexOf(value), 1);
}
}
更新功能
updateOfficeDetail(officeid) {
if(officeid= 1)
{
this.officeArray.push('stars dept');
}
else if(officeid= 2)
{
this.officeArray.push('moon dept');
}
else
{
this.officeArray.push('Sun dept');
}
}
问题是
如果我在不更改复选框当前值的情况下更新数据,例如:sun dept,
这个 sun dept 将 push 进入 officeArray 。
但是如果我想再次通过编辑复选框来更新数据(选择另一个值),那么之前选择的值和当前选择的值将被推送到这个 officeArray
如果用户没有编辑复选框(仅继续当前选择的值)>>>> officeArray 将如下所示
["sun"]
如果用户尝试通过单击另一个复选框来更新复选框,则数组将如下所示
["太阳","月亮","太阳"]
我只想要 officeArray 中的 ["sun","moon"]。我应该删除吗?或清除什么?
我尝试做一些研究和很多与我相似的问题。但不知何故,所有解决方案都不适合我。有什么想法吗?
谢谢
【问题讨论】:
-
我想帮忙,但它的描述令人困惑,至少对我来说,你能在代码中添加一个 plunk 吗?我猜会更容易
-
我明白了。但实际上它是一个大代码,所以我只提取其中的一小部分来查看问题所在......
标签: arrays angular checkbox multidimensional-array