我有复选框(与用户选定的值,选中)。所以我需要编辑这个复选框,并将所有选中的值存入一个数组中并发送给它。
如何删除数组中的重复值Angular 2
的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');
}
}
问题是 如果我更新的数据中而不改变复选框的电流值,例如:太阳部门,
此太阳部门将推成officeArray。
但是如果我想再次通过编辑复选框(选择另一个值)来更新数据,所以如果用户没有编辑复选框(只需继续处理),那么先前选择的值和当前选定的值将被推入该办公室阵列
当前选择的值)的>>>> officeArray将看起来像这样
[“太阳”]
并且如果用户试图通过点击一个更复选框以更新的复选框,阵列看起来像这样
[“太阳”,“月亮”,“太阳”]
我只是想在办公室阵列中[“太阳”,“月亮”]。我应该删除吗?或清除某些东西?
我试图做一些研究和很多类似于我的问题。但不知何故,所有的解决方案都不适合我。任何想法?
谢谢
我想帮助,但它混淆的描述,至少对我来说,你可以添加一个普拉克的代码?会更容易我猜 –
我明白了。但实际上它是一个大的代码,所以我只是提取它的一小部分看到Wats的问题... – user3431310