@@ -269,17 +269,21 @@ export class MatDialog {
269269 const userInjector = config && config . viewContainerRef && config . viewContainerRef . injector ;
270270 const injectionTokens = new WeakMap ( ) ;
271271
272- injectionTokens . set ( MatDialogRef , dialogRef ) ;
273272 // The MatDialogContainer is injected in the portal as the MatDialogContainer and the dialog's
274273 // 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
276275 // 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+ }
283287
284288 return new PortalInjector ( userInjector || this . _injector , injectionTokens ) ;
285289 }
0 commit comments