@@ -269,17 +269,21 @@ export class MatDialog {
269
269
const userInjector = config && config . viewContainerRef && config . viewContainerRef . injector ;
270
270
const injectionTokens = new WeakMap ( ) ;
271
271
272
- injectionTokens . set ( MatDialogRef , dialogRef ) ;
273
272
// The MatDialogContainer is injected in the portal as the MatDialogContainer and the dialog's
274
273
// content are created out of the same ViewContainerRef and as such, are siblings for injector
275
- // purposes. To allow the hierarchy that is expected, the MatDialogContainer is explicitly
274
+ // purposes. To allow the hierarchy that is expected, the MatDialogContainer is explicitly
276
275
// added to the injection tokens.
277
- injectionTokens . set ( MatDialogContainer , dialogContainer ) ;
278
- injectionTokens . set ( MAT_DIALOG_DATA , config . data ) ;
279
- injectionTokens . set ( Directionality , {
280
- value : config . direction ,
281
- change : observableOf ( )
282
- } ) ;
276
+ injectionTokens
277
+ . set ( MatDialogContainer , dialogContainer )
278
+ . set ( MAT_DIALOG_DATA , config . data )
279
+ . set ( MatDialogRef , dialogRef ) ;
280
+
281
+ if ( ! userInjector || ! userInjector . get ( Directionality , null ) ) {
282
+ injectionTokens . set ( Directionality , {
283
+ value : config . direction ,
284
+ change : observableOf ( )
285
+ } ) ;
286
+ }
283
287
284
288
return new PortalInjector ( userInjector || this . _injector , injectionTokens ) ;
285
289
}
0 commit comments