@@ -111,6 +111,9 @@ export class MdChipList implements MdFormFieldControl<any>, ControlValueAccessor
111111 /** Subscription to focus changes in the chips. */
112112 private _chipFocusSubscription : Subscription | null ;
113113
114+ /** Subscription to blur changes in the chips. */
115+ private _chipBlurSubscription : Subscription | null ;
116+
114117 /** Subscription to selection changes in chips. */
115118 private _chipSelectionSubscription : Subscription | null ;
116119
@@ -284,6 +287,11 @@ export class MdChipList implements MdFormFieldControl<any>, ControlValueAccessor
284287 return merge ( ...this . chips . map ( chip => chip . _onFocus ) ) ;
285288 }
286289
290+ /** Combined stream of all of the child chips' blur change events. */
291+ get chipBlurChanges ( ) : Observable < MdChipEvent > {
292+ return merge ( ...this . chips . map ( chip => chip . _onBlur ) ) ;
293+ }
294+
287295 /** Combined stream of all of the child chips' remove change events. */
288296 get chipRemoveChanges ( ) : Observable < MdChipEvent > {
289297 return merge ( ...this . chips . map ( chip => chip . destroy ) ) ;
@@ -656,6 +664,11 @@ export class MdChipList implements MdFormFieldControl<any>, ControlValueAccessor
656664 this . _chipFocusSubscription = null ;
657665 }
658666
667+ if ( this . _chipBlurSubscription ) {
668+ this . _chipBlurSubscription . unsubscribe ( ) ;
669+ this . _chipBlurSubscription = null ;
670+ }
671+
659672 if ( this . _chipSelectionSubscription ) {
660673 this . _chipSelectionSubscription . unsubscribe ( ) ;
661674 this . _chipSelectionSubscription = null ;
@@ -694,6 +707,11 @@ export class MdChipList implements MdFormFieldControl<any>, ControlValueAccessor
694707 }
695708 this . stateChanges . next ( ) ;
696709 } ) ;
710+
711+ this . _chipBlurSubscription = this . chipBlurChanges . subscribe ( _ => {
712+ this . _blur ( ) ;
713+ this . stateChanges . next ( ) ;
714+ } ) ;
697715 }
698716
699717 private _listenToChipsRemoved ( ) : void {
0 commit comments