@@ -34,8 +34,6 @@ import {
34
34
import { ViewportRuler } from '@angular/cdk/scrolling' ;
35
35
import {
36
36
AfterContentInit ,
37
- afterNextRender ,
38
- AfterRenderPhase ,
39
37
Attribute ,
40
38
booleanAttribute ,
41
39
ChangeDetectionStrategy ,
@@ -50,7 +48,6 @@ import {
50
48
Inject ,
51
49
inject ,
52
50
InjectionToken ,
53
- Injector ,
54
51
Input ,
55
52
NgZone ,
56
53
numberAttribute ,
@@ -545,6 +542,8 @@ export class MatSelect
545
542
? this . _defaultOptions . panelWidth
546
543
: 'auto' ;
547
544
545
+ private _initialized = new Subject ( ) ;
546
+
548
547
/** Combined stream of all of the child options' change events. */
549
548
readonly optionSelectionChanges : Observable < MatOptionSelectionChange > = defer ( ( ) => {
550
549
const options = this . options ;
@@ -556,19 +555,8 @@ export class MatSelect
556
555
) ;
557
556
}
558
557
559
- return new Observable ( subscriber => {
560
- afterNextRender (
561
- ( ) => {
562
- subscriber . next ( ) ;
563
- subscriber . complete ( ) ;
564
- } ,
565
- {
566
- injector : this . _injector ,
567
- phase : AfterRenderPhase . Read ,
568
- } ,
569
- ) ;
570
- } ) . pipe ( switchMap ( ( ) => this . optionSelectionChanges ) ) ;
571
- } ) as Observable < MatOptionSelectionChange > ;
558
+ return this . _initialized . pipe ( switchMap ( ( ) => this . optionSelectionChanges ) ) ;
559
+ } ) ;
572
560
573
561
/** Event emitted when the select panel has been toggled. */
574
562
@Output ( ) readonly openedChange : EventEmitter < boolean > = new EventEmitter < boolean > ( ) ;
@@ -595,8 +583,6 @@ export class MatSelect
595
583
*/
596
584
@Output ( ) readonly valueChange : EventEmitter < any > = new EventEmitter < any > ( ) ;
597
585
598
- private _injector = inject ( Injector ) ;
599
-
600
586
constructor (
601
587
protected _viewportRuler : ViewportRuler ,
602
588
protected _changeDetectorRef : ChangeDetectorRef ,
@@ -667,6 +653,9 @@ export class MatSelect
667
653
}
668
654
669
655
ngAfterContentInit ( ) {
656
+ this . _initialized . next ( ) ;
657
+ this . _initialized . complete ( ) ;
658
+
670
659
this . _initKeyManager ( ) ;
671
660
672
661
this . _selectionModel . changed . pipe ( takeUntil ( this . _destroy ) ) . subscribe ( event => {
0 commit comments