I want to have a list of items with a checkbox on the right. When I click on the item, it opens a modal where I can fill in the details. When details are filled, checkbox is checked.
The problem is that on device and chrome, a click activates/deactivates the checkbox and the modal is never opened. On firefox, Everything is working fine.
This is my code in HTML
<ion-list>
<button ion-item (click)="goToItem1Modal()">
<ion-label>Add Item 1 details</ion-label>
<ion-checkbox item-right checked={{isValidCheckbox.item1}}></ion-checkbox>
</button>
<button ion-item (click)="goToItem2Modal()">
<ion-label>Add Item 2 details</ion-label>
<ion-checkbox item-right checked={{isValidCheckbox.item2}}></ion-checkbox>
</button>
<button ion-item (click)="goToItem3Modal()">
<ion-label>Add Item 3 details</ion-label>
<ion-checkbox item-right checked={{isValidCheckbox.item3}}></ion-checkbox>
</button>
</ion-list>
And this is the code in the TS file
import { Component } from '@angular/core';
import { NavController, AlertController, ModalController } from 'ionic-angular';
import { Item1Modal } from "../item1-modal/item1-modal"
import { Item2Modal } from "../item2-modal/item2-modal"
import { Item3Modal } from "../item3-modal/item3-modal"
@Component({
templateUrl: 'build/pages/test-2/test-2.html',
})
export class Test2Page {
item1Details: string = "";
item2Details: string = "";
item3Details: string = "";
isValidCheckbox = {
item1: true,
item2: false,
item3: false
}
constructor(
private navCtrl: NavController,
private modal: ModalController,
private alertCtrl: AlertController
) { }
goToItem1Modal() {
let item1Modal = this.modal.create(Item1Modal, {recDetails: this.item1Details});
item1Modal.onDidDismiss(data => {
//Getting back item1Details information from the modal
console.log(data);
this.item1Details = data;
if(data.length > 3) {
this.isValidCheckbox.item1 = true;
} else {
this.isValidCheckbox.item1 = false;
}
});
item1Modal.present();
}
goToItem2Modal() {
let item2Modal = this.modal.create(Item2Modal, {recDetails: this.item2Details});
item2Modal.onDidDismiss(data => {
console.log(data);
this.item2Details = data;
if(data.length > 3) {
this.isValidCheckbox.item2 = true;
} else {
this.isValidCheckbox.item2 = false;
}
});
item2Modal.present();
}
goToItem3Modal() {
let item3Modal = this.modal.create(Item3Modal, {recDetails: this.item3Details});
item3Modal.onDidDismiss(data => {
console.log(data);
this.item3Details = data;
if(data.length > 3) {
this.isValidCheckbox.item3 = true;
} else {
this.isValidCheckbox.item3 = false;
}
});
item3Modal.present();
}
}
I think the click is absorbed by the ion-checkbox and so the modal is never opened. Anyone has any idea on how to solve this?