Angular2 material 'md-icon' is not a known element Angular2 material 'md-icon' is not a known element typescript typescript

Angular2 material 'md-icon' is not a known element


What about the export section? Did you provide MaterialModule there?

@NgModule({  imports: [    MaterialModule.forRoot()  ],  exports: [    MaterialModule  ]})

Remember to provide icon styles in your index.html:

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

After that you should be able to use icons in your views:

<md-icon>delete</md-icon>


You need to import MatIconModule in app.module.ts and add it to your imports array in the same file.

Like this for example:

import { BrowserModule } from "@angular/platform-browser";import { NgModule } from "@angular/core";import { BrowserAnimationsModule } from "@angular/platform-browser/animations";import { TreeModule } from "angular-tree-component";import { HttpClientModule } from "@angular/common/http";import { MatButtonModule } from "@angular/material/button";import { MatIconModule } from "@angular/material/icon"; // <----- Hereimport { EclassService } from "./services/eclass.service";import { AppComponent } from "./app.component";import { FormsModule } from "@angular/forms";import { AsyncTreeComponent } from "./components/async-tree/async-tree.component";@NgModule({  declarations: [    AppComponent,    AsyncTreeComponent  ],  imports: [    BrowserModule, BrowserAnimationsModule, FormsModule, TreeModule, HttpClientModule, MatButtonModule, MatIconModule // <--- HERE  ],  providers: [EclassService],  bootstrap: [AppComponent]})export class AppModule { }


if you load a child module like this:

{path: 'childModule', loadChildren: 'app/child/child.module#childModule'}

then in child module, you have to import MaterialModule again.e.g.

@NgModule({    imports: [        sharedModules,        childRouting,        MaterialModule.forRoot()    ],    declarations: [    ],    providers: []})export class childModule {}