tengo esto en mi html
<ion-col col-3 align="right"> <ion-item> <ion-label>Show as</ion-label> <ion-select [ngModel]="SelectedView" (ngModelChange)="onViewChange($event)> <ion-option value="List">List</ion-option> <ion-option value="Map">Map</ion-option> </ion-select> </ion-item> </ion-col>y esto en mi archivo customer.ts
export class customerpage implements OnInit { constructor(public modalCtrl: ModalController, public popoverCtrl: PopoverController, private _customerservice: CustomersService, public navCtrl: NavController, public navParams: NavParams) { this.ListPositions = []; this.customersArray = []; this.customersView = []; } ngOnInit() { this.SelectedCategory = ""; this.customersArray = []; this.customersView = []; setTimeout(() => { this.GetCustomers(); }, 500); } GetCustomers() { const arrayofroles$ = this._customerservice.GetAllCustomers(); arrayofroles$.subscribe(res => { this.customersArray = res; //Initially both arrays are the same this.customersView = this.customersArray; }, err => { }, () => { this.loadingCustomers = false; }); } ionViewDidLoad(): void { } onViewChange(event: any, Customers: any) { this.initMap(Customers); } initMap(Customers: any) { this.customersView; // UNDEFINED! } }Inicialmente, en nginit, estoy cargando la vista de clientes desde la base de datos. OnViewchange desde el html Estoy llamando a la función initmap e intentando acceder a cutomersview pero me está dando indefinido para mi variable local.
Una solución podría ser: parece que tiene un problema de sincronización de datos.
// return subscription from this method getCustomers() { const customerSubscription = this._customerservice.GetAllCustomers(); return customerSubscription; } onViewChange(event: any) { this.getCustomers() .subscribe((customers: any) => { this.initMap(customers); }); }