feat(checkbox): ionChange fires on user interaction (#25923)

BREAKING CHANGE:

`ionChange` is no longer emitted when the `checked` property of `ion-checkbox` is modified externally. `ionChange` is only emitted from user committed changes, such as clicking or tapping the checkbox.
This commit is contained in:
Liam DeBeasi
2022-09-13 15:27:34 -05:00
committed by GitHub
parent c76de0cc37
commit a6b2629ede
8 changed files with 86 additions and 17 deletions

View File

@@ -388,7 +388,10 @@ export class IonCardTitle {
import type { CheckboxChangeEventDetail as ICheckboxCheckboxChangeEventDetail } from '@ionic/core';
export declare interface IonCheckbox extends Components.IonCheckbox {
/**
* Emitted when the checked property has changed.
* Emitted when the checked property has changed
as a result of a user action such as a click.
This event will not emit when programmatically
setting the checked property.
*/
ionChange: EventEmitter<CustomEvent<ICheckboxCheckboxChangeEventDetail>>;
/**

View File

@@ -38,7 +38,7 @@ describe('Inputs', () => {
it('change values should update angular', () => {
cy.get('#reset-button').click();
cy.get('ion-checkbox').invoke('prop', 'checked', true);
cy.get('ion-checkbox#first-checkbox').click();
cy.get('ion-toggle').invoke('prop', 'checked', true);
cy.get('ion-input').eq(0).type('hola');

View File

@@ -75,7 +75,7 @@
<ion-item>
<ion-label>Checkbox</ion-label>
<ion-checkbox [(ngModel)]="checkbox" slot="start"></ion-checkbox>
<ion-checkbox [(ngModel)]="checkbox" slot="start" id="first-checkbox"></ion-checkbox>
<ion-note slot="end" id="checkbox-note">{{checkbox}}</ion-note>
</ion-item>