Skip to content
This repository was archived by the owner on Jan 6, 2025. It is now read-only.

Commit cbb3d1b

Browse files
committed
fix(api): check platform before accessing nativeElement
1 parent 5f198a3 commit cbb3d1b

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

src/lib/api/ext/class.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {BaseFxDirective} from '../core/base';
2525
import {BaseFxDirectiveAdapter} from '../core/base-adapter';
2626
import {MediaChange} from '../../media-query/media-change';
2727
import {MediaMonitor} from '../../media-query/media-monitor';
28+
import {isBrowser} from '../../media-query/match-media';
2829
import {RendererAdapter} from '../core/renderer-adapter';
2930

3031
/** NgClass allowed inputs **/
@@ -103,7 +104,7 @@ export class ClassDirective extends BaseFxDirective
103104

104105
this._ngClassAdapter = new BaseFxDirectiveAdapter('ngClass', monitor, _ngEl, _renderer);
105106
this._classAdapter = new BaseFxDirectiveAdapter('class', monitor, _ngEl, _renderer);
106-
this._classAdapter.cacheInput('class', _ngEl.nativeElement.getAttribute('class') || '');
107+
this._classAdapter.cacheInput('class', isBrowser() ? _ngEl.nativeElement.getAttribute('class') || '' : '');
107108

108109
// Create an instance NgClass Directive instance only if `ngClass=""` has NOT been defined on
109110
// the same host element; since the responsive variations may be defined...

src/lib/api/ext/img-src.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616

1717
import {BaseFxDirective} from '../core/base';
1818
import {MediaMonitor} from '../../media-query/media-monitor';
19+
import {isBrowser} from '../../media-query/match-media';
1920

2021
/**
2122
* This directive provides a responsive API for the HTML <img> 'src' attribute
@@ -57,7 +58,7 @@ export class ImgSrcDirective extends BaseFxDirective implements OnInit, OnChange
5758

5859
constructor(elRef: ElementRef, renderer: Renderer2, monitor: MediaMonitor) {
5960
super(monitor, elRef, renderer);
60-
this._cacheInput('src', elRef.nativeElement.getAttribute('src') || '');
61+
this._cacheInput('src', isBrowser() ? elRef.nativeElement.getAttribute('src') || '' : '');
6162
}
6263

6364
/**

src/lib/api/ext/style.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {BaseFxDirective} from '../core/base';
2525
import {BaseFxDirectiveAdapter} from '../core/base-adapter';
2626
import {MediaChange} from '../../media-query/media-change';
2727
import {MediaMonitor} from '../../media-query/media-monitor';
28+
import {isBrowser} from '../../media-query/match-media';
2829
import {extendObject} from '../../utils/object-extend';
2930
import {DomSanitizer} from '@angular/platform-browser';
3031

@@ -113,7 +114,7 @@ export class StyleDirective extends BaseFxDirective
113114

114115
// Build adapter, `cacheInput()` interceptor, and get current inline style if any
115116
this._buildAdapter(this.monitor, _ngEl, _renderer);
116-
this._base.cacheInput('style', _ngEl.nativeElement.getAttribute('style'), true);
117+
this._base.cacheInput('style', isBrowser() ? _ngEl.nativeElement.getAttribute('style') || '' : '', true);
117118

118119
// Create an instance NgStyle Directive instance only if `ngStyle=""` has NOT been defined on
119120
// the same host element; since the responsive versions may be defined...

0 commit comments

Comments
 (0)