Skip to content

fix(tabs): changed after checked error when using isActive in view #12206

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 13, 2018

Conversation

crisbeto
Copy link
Member

  • Fixes a "changed after checked" error being thrown if the consumer is using the isActive property of a tab somewhere in the view.
  • Reworks the MatTab to only have one stateChanges subject rather than one per property.

Fixes #12197.

* Fixes a "changed after checked" error being thrown if the consumer is using the `isActive` property of a tab somewhere in the view.
* Reworks the `MatTab` to only have one `stateChanges` subject rather than one per property.

Fixes angular#12197.
@crisbeto crisbeto added the target: patch This PR is targeted for the next patch release label Jul 14, 2018
@crisbeto crisbeto requested a review from andrewseguin as a code owner July 14, 2018 11:54
@googlebot googlebot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Jul 14, 2018
Copy link
Member

@josephperrott josephperrott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

// Emitting this value after change detection has run
// since the checked content may contain this variable'
Promise.resolve().then(() => this.selectedIndexChange.emit(indexToSelect));
if (this._selectedIndex != indexToSelect) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use !== here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's what was being used here before so I kept it. I'm guessing it was there to handle somebody passing the index in as a string.

@crisbeto crisbeto added the action: merge The PR is ready for merge by the caretaker label Aug 8, 2018
@jelbourn jelbourn added the P1 Impacts a large percentage of users; if a workaround exists it is partial or overly painful label Aug 13, 2018
@mmalerba mmalerba merged commit 499458c into angular:master Aug 13, 2018
mmalerba pushed a commit that referenced this pull request Aug 20, 2018
…12206)

* Fixes a "changed after checked" error being thrown if the consumer is using the `isActive` property of a tab somewhere in the view.
* Reworks the `MatTab` to only have one `stateChanges` subject rather than one per property.

Fixes #12197.
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 9, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker cla: yes PR author has agreed to Google's Contributor License Agreement P1 Impacts a large percentage of users; if a workaround exists it is partial or overly painful target: patch This PR is targeted for the next patch release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Tabs] Data binding that references the isActive property of a MatTab results in an ExpressionChangedAfterItHasBeenCheckedError
5 participants