Skip to content

bug(MatCalendar): @Input("startAt ") is not referenced for changes #25293

Description

@hhsissi

Is this a regression?

  • Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

No response

Description

@input("startAt") is not referenced for changeDetection.

const change = minDateChange || maxDateChange || changes['dateFilter'];

There is a workaround with "activeDate", but the problem is it makes a bit heavy on developers to implement programmatic month change (as it it not useable through templates). using startAt would make ours lives much easier when it comes to changing month view.

Reproduction

Steps to reproduce:

  1. Create a component with a MatCalendar
  2. set mat-calendar "startAt" attribute in template and bind it to a property in your component (startAt) for example.
  3. change programmaticaly the startAt to another month
  4. Nothing happens (and this is a problem)

Expected Behavior

startAt updates should be referenced for changeDetection and trigger a view update.

Actual Behavior

Changing startAt value won't trigger change detection.

A workaround is changing the "activeDate", that is not referenced as an Input, therefore developers will have a hard time finding it.
Most people are actualy using internal functions like "calendar.monthView._init()" and stuff like that...

Environment

  • Angular: 14.0.4
  • Material: 14.0.4 and previous

Activity

  1. zarend commented on Jul 26, 2022

    @zarend
    Contributor

    Hello @hhsissi ,

    Since "startAt" is for the date that the calendar opens to initially, there is no requirement that changing startAt after the calendar opens should have an effect. I'll convert this to a discussion so more developers could chime in on how to implement programmatic month change. perhaps there could be a better way to do that.

    -Zach

  2. locked and limited conversation to collaborators on Jul 26, 2022
  3. converted this issue into a discussion #25340 on Jul 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs triageThis issue needs to be triaged by the team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions