diff --git a/src/lib/snack-bar/simple-snack-bar.ts b/src/lib/snack-bar/simple-snack-bar.ts index 686db49694a3..2f3b71ad6e24 100644 --- a/src/lib/snack-bar/simple-snack-bar.ts +++ b/src/lib/snack-bar/simple-snack-bar.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {Component, ViewEncapsulation} from '@angular/core'; +import {Component, ViewEncapsulation, ChangeDetectionStrategy} from '@angular/core'; import {MdSnackBarRef} from './snack-bar-ref'; @@ -20,6 +20,7 @@ import {MdSnackBarRef} from './snack-bar-ref'; templateUrl: 'simple-snack-bar.html', styleUrls: ['simple-snack-bar.css'], encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'mat-simple-snackbar', } diff --git a/src/lib/snack-bar/snack-bar-container.ts b/src/lib/snack-bar/snack-bar-container.ts index 487b26385c59..c3856a94603c 100644 --- a/src/lib/snack-bar/snack-bar-container.ts +++ b/src/lib/snack-bar/snack-bar-container.ts @@ -14,6 +14,7 @@ import { OnDestroy, Renderer2, ElementRef, + ChangeDetectionStrategy, } from '@angular/core'; import { trigger, @@ -52,6 +53,7 @@ export const HIDE_ANIMATION = '195ms cubic-bezier(0.0,0.0,0.2,1)'; selector: 'snack-bar-container', templateUrl: 'snack-bar-container.html', styleUrls: ['snack-bar-container.css'], + changeDetection: ChangeDetectionStrategy.OnPush, host: { 'role': 'alert', '[@state]': 'animationState', @@ -59,6 +61,7 @@ export const HIDE_ANIMATION = '195ms cubic-bezier(0.0,0.0,0.2,1)'; }, animations: [ trigger('state', [ + state('void', style({transform: 'translateY(100%)'})), state('initial', style({transform: 'translateY(100%)'})), state('visible', style({transform: 'translateY(0%)'})), state('complete', style({transform: 'translateY(100%)'})), diff --git a/src/lib/snack-bar/snack-bar.ts b/src/lib/snack-bar/snack-bar.ts index f18f067f3b9c..581435bb0a2a 100644 --- a/src/lib/snack-bar/snack-bar.ts +++ b/src/lib/snack-bar/snack-bar.ts @@ -135,12 +135,6 @@ export class MdSnackBar { let containerPortal = new ComponentPortal(MdSnackBarContainer, config.viewContainerRef); let containerRef: ComponentRef = overlayRef.attach(containerPortal); containerRef.instance.snackBarConfig = config; - - // The snackbar animation needs the content to be resolved in order to transform the bar - // out of the view initially (so it can slide in). To make the content resolve, we manually - // detect changes. - containerRef.changeDetectorRef.detectChanges(); - return containerRef.instance; }