Skip to content

In linear steppers, steps with pending components should not be considered completed #8645

Closed
@olivierlemasle

Description

@olivierlemasle

Bug, feature request, or proposal:

Bug

What is the expected behavior?

In a linear stepper, going to the next step should require that no components of the step are in invalid or pending states (i.e. all components are valid or disabled). Pending components (i.e. components with async validators pending) should block the step.

What is the current behavior?

Pending components do not block the step.

What are the steps to reproduce?

Example: http://plnkr.co/edit/aFMUy13jRinsHHudFltm?p=preview

The first step has a single input component, with two validators:

  • validators.required (sync)
  • a custom async validator, validating that the input is not bob, but with a 2 seconds delay (to mock a remote check)

Type "bob", wait a few seconds for the check to complete, then try to go the second step. It will block: first step is required.

Change value to "". Then type "bob" again, but go the second step while validation is pending. The stepper is not blocked.

What is the use-case or motivation for changing an existing behavior?

In a linear stepper, validation is expected to be required.

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

Angular 5.0.3, Material 5.0.0-rc1

Metadata

Metadata

Assignees

Labels

P3An issue that is relevant to core functions, but does not impede progress. Important, but not urgent

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions