Slide Toggle en Material Design no tiene un evento stopPropagation, porque "MdSlideToggle.prototype._onChangeEvent" ya llama a stopPropagation. ¿Qué debo usar en su lugar?
<md-slide-toggle (change)="changeToggle($event, activityType.isActive)" checked="activityType.isActive" value="activityType.activityTypeId" mdTooltip="{{!!activityType.isActive ? 'Active' : 'Inactive'}}" mdTooltipPosition="left"></md-slide-toggle> public changeToggle(event: MdSlideToggleChange, originalValue){ if (this.hasChange && event.checked !== originalValue){ event.stopPropagation(); //Results in error: [ts] Property 'stopPropagation' does not exist on type 'MdSlideToggleChange'. } else { this.hasChange = !this.hasChange; } }
Puedo usar un evento regular, pero recibe una excepción que dice "event.stopPropagation no es una función".
Por el momento, estoy cambiando esa línea a:
event.source.checked = !event.checked;
Lo mismo ocurre con event.preventDefault. Necesito solicitar al usuario que guarde el cambio, antes de cambiar otro valor en la página, debido a "requisitos comerciales".
¿Simplemente cambiar el valor de "marcado" de nuevo a lo que era, es lo correcto? ¿Hay una mejor manera de hacer esto?
"Necesito solicitar al usuario que guarde el cambio, antes de cambiar otro valor en la página"
Sé que esto está fuera de tema, pero esto se relaciona con sus "requisitos comerciales". -deslizar-alternar. Deberías usar una casilla de verificación.
mat-slide-toggles son buenos para acciones únicas, encender o apagar una luz, sin preguntar si desea que la luz esté encendida o apagada. Es una acción, no una pregunta.
Las casillas de verificación son más adecuadas para las preguntas.