Stepper (selectionChange) vs (selectionChanged) and [selectedIndex]
- Lenguaje dominante
- TypeScript
- Estrellas
- 25k
- Forks
- 6.8k
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 91
Descripción
#### Bug, feature request, or proposal:
```
Next
Previous (cancelled)
```
In the stepper control the (selectionChange) event cannot be used together with [selectedIndex], because changing the [selectedIndex] also triggers (selectionChange), so there is no way of cancelling the selection programatically, or implement other logic 'before' the change is executed.
Expected it to work as a standard html select control where:
- when changing the .selectedIndex the (change) event doesn't get automatically triggered
- the (change) event is triggered 'before' the change is finished, so it can be cancelled with event.preventDefault()
#### What is the expected behaviour?
- The current event should be renamed (selectionChange**d**) = 'after' the step has changed.
- Emit a new event (selectionChange) = 'before' the step has changed, with option to cancel the action, which doesn't get automatically triggered when selectedIndex changes.
#### What is the current behavior?
selectionChange = 'after' the step has changed, naming is confusing, gets triggered automatically with [selectedIndex]
#### What are the steps to reproduce?

1. Select step 2
2. Press Previous button (the action is cancelled programatically) - ok
3. Press step 1 header (step 1 is still selected, the action cannot be cancelled, selectedIndex remains on step 2)
StackBlitz: https://stackblitz.com/edit/angular-material2-issue-9lskal
#### What is the use-case or motivation for changing an existing behavior?
Be able to programatically enable/disable certain steps
#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Material 5.1.0
#### Is there anything else we should know?
Guía de contribución
Línea de trabajo
Empieza reproduciendo el comportamiento en el StackBlitz enlazado, centrándote en mat-horizontal-stepper, selectedIndex y selectionChange. Traza en qué se diferencia la navegación del usuario de los cambios programáticos de selectedIndex; se considera terminado cuando la semántica de los eventos es distinta, la acción previa al cambio se puede cancelar y la notificación posterior al cambio sigue estando disponible.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- angular, typescript
- Área
- frontend
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100