Skip to content

Bug: MdSidenav._closePromiseReject on toggle Sidenav (issues with _onTransitionEnd) #1899

Closed
@leocaseiro

Description

@leocaseiro

Bug

Toggle a Sidenav before the Transition causes an error on console

What is the expected behavior?

It shouldn't show any errors on toggle.

What is the current behavior?

It's working the toggle, but we can see errors on console

What are the steps to reproduce?

<button md-button class="md-icon-button" aria-label="Open Menu" (click)="menu.toggle()">
    <md-icon>menu</md-icon>
</button>
<md-sidenav #menu [opened]="true" mode="side" layout-padding>
    My Sidenav
</md-sidenav>

http://plnkr.co/edit/Ri7CqKVl0b3czY5SYg4g?p=preview

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

@angular@2.2.0
@angular/material@2.0.0-alpha.10
Chrome 54.0.2840.98 (64-bit)
Mac OSX 10.11.6

Is there anything else we should know?

Is related to #1382 and #1370.
Something with _onTransitionEnd()

There's is a temporary fix based on @omararturo asnwer:

import { Component, OnInit, ViewChild } from '@angular/core';
import { MdSidenav } from '@angular/material';

@Component({
    selector: 'app',
    template: './app.component.html'
})
export class AppComponent implements OnInit {

    @ViewChild('sidenav') sidenav: MdSidenav;

    ngOnInit(): void {
        this.sidenav._onTransitionEnd = function () {
            this._openPromise = null;
            this._closePromise = null;
        }
    }
}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions