我有複選框(與用戶選定的值,選中)。所以我需要編輯這個複選框,並將所有選中的值存入一個數組中併發送給它。
如何刪除數組中的重複值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