HTML-файл:
<ion-item class="inputpsection" *ngIf="showDeptsec">
<ion-label floating class="fontsize12">Department</ion-label>
<ion-select (ionChange)="showDepartmentChosen($event)" multiple="true" formControlName="depId"
[(ngModel)]="depItems">
<ion-option value="{{dept.id}}" *ngFor="let dept of deptAPIdata" [selected]="dept.selected">{{dept.name}}
</ion-option>
</ion-select>
</ion-item>
<!-- SUB-DEPARTMENT -->
<ion-item class="inputpsection" *ngIf="showSubDeptsec">
<ion-label floating class="fontsize12">Sub-Department</ion-label>
<ion-select (ionChange)="showSubDeptChosen($event)" multiple="true" formControlName="subdepId"
[(ngModel)]="subDepItems">
<ion-option value="{{subDept.id}}" *ngFor="let subDept of subdeptAPIdata" [selected]="subDept.selected">
{{subDept.name}}</ion-option>
</ion-select>
</ion-item>
ts файл:
export class DashboardPage {
public deptAPIdata: any = [];
public subdeptAPIdata: any = [];
constructor(public navCtrl: NavController, public navParams: NavParams,public remoteData: RemoteDataProvider){
}
showDepartmentChosen(itemVal: any): void {
this.getDepartment_dropdownItems()
}
getDepartment_unit_dropdownItems() {
this.remoteData.callAPIforDepUnit()
.then(data => {
this.apiData = JSON.stringify(data);
let obj: dep_unit = JSON.parse(this.apiData);
if (obj.status === 1) {
this.subdeptAPIdata = obj.subdeptData;
//for deselecting items
if (this.subDepItems.length > 0) {
for (var i = 0; i < this.subdeptAPIdata.length; i++) {
this.subDepItems.forEach((element: string) => {
if (element == this.subdeptAPIdata[i]['id']) {
this.subdeptAPIdata[i]['selected'] = false;
}
});
}
}
}
});
}
}
Все значения параметров как для департамента, так и для департамента отображаются динамически из API при начальной загрузке страницы. и когда я выбираю какие-либо элементы (это может быть несколько элементов) опции отдела, а затем просто вызывал другой API для извлечения данных подотдела в соответствии с идентификаторами отделов и повторной инициализации данных массива this.subdeptAPIdata
. Но проблема в том, что данные подотдела нельзя отменить, какой был выбран ранее. Я просто хочу обновить массив и перезагрузить данные снова для подотдела без проверки каких-либо элементов.
Пожалуйста, дайте мнезнаю, есть ли у вас, ребята, какие-нибудь надежные решения или я допустил какие-либо ошибки в коде ... Заранее спасибо !!!