2017-09-04 1 views
0

Ich schreibe benutzerdefinierte Bibliothek auf Angular 4 + Material und ich habe eine Menge Probleme. Eine der benutzerdefinierten Komponenten ist SearchComponent. Nichts schwierig.MdCommonModule in benutzerdefinierten Winkel 4 Modul mit Material

search.component.ts

@Component({ 
selector: 'cis-search', 
templateUrl: './search.component.html', 
styleUrls: ['./search.component.scss'], 
encapsulation: ViewEncapsulation.None, 
host: { 
    'class': 'search' 
}}) 
export class CisSearchComponent implements OnChanges {} 

Modul

@NgModule({ 
imports: [ 
    CommonModule, 
    MdIconModule, 
    MdListModule, 
    BrowserAnimationsModule, 
    HttpModule 
], 
providers: [SearchService], 
declarations: [CisSearchComponent], 
exports: [CisSearchComponent] 
}) 
export class CisSearchModule {} 

und dieses Modul Aufsummierung verpacken. Im Hauptprojekt schreibe ich

{ 
    provide: DOCUMENT, useValue: {value: document} 
} 

Fehler

TypeError: this._document.createElement is not a function 
at MdCommonModule._checkTheme (material.es5.js:191) 
at new MdCommonModul 

Wie geht das Problem beheben? Alle Abhängigkeiten installiert @latest.

Antwort

1

Die Lösung ist

constructor(@Optional() @Inject(DOCUMENT) private _document: any) {} 

in Ihrem benutzerdefinierten Modul.