J'ai installé Material pour angular,
J'ai importé sur mon module d'application MatIconModule (avec import { MatIconModule } from '@angular/material/icon';
)
Je l'ai ajouté sous mes importations de ngmodule avec:
@NgModule({
imports: [
//...
MatIconModule,
//...
J'ai importé tous les stylesheets
Et je l'ai également importé dans le composant de mon application en train de (les essayer) de les utiliser (avec une autre ligne import {MatIconModule} from '@angular/material/icon';
au début de celle-ci).
Mais les icônes matérielles n'apparaissent toujours pas.
Par exemple, avec cette ligne:
<button mat-icon-button (click)="snav.toggle()"><mat-icon>menu</mat-icon></button>
J'attends quelque chose comme ça:
Mais je reçois ceci:
Vous avez une suggestion?
Ajouter une feuille de style CSS pour Material Icons!
Ajoutez ce qui suit à votre index.html:
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
Référez-vous - https://github.com/angular/material2/issues/7948
Si vous utilisez SASS, vous devez ajouter cette ligne à votre fichier principal .scss
:
@import url (" https://fonts.googleapis.com/icon?family=Material+Icons ");
Vous devez importer MatIconModule et utiliser l'URL suivante dans index.html
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
La solution complète peut être:
Première étape
Vous devez importer MatIconModule
dans votre projet. Dans mon projet, j'importe le composant nécessaire dans un fichier séparé, puis je l'importe dans l'AppModule. Vous pouvez l'utiliser ou l'importer directement:
import { NgModule } from "@angular/core";
import { MatButtonModule } from '@angular/material';
import { MatIconModule } from '@angular/material/icon';
@NgModule({
imports: [MatIconModule, MatButtonModule], // note the imports
exports: [MatIconModule, MatButtonModule], // and the exports
})
export class MaterialModule { }
Deuxième étape
Chargez la police de l'icône dans votre index.html
:
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
Dans mon cas, le nom de l'icône que j'ai écrit n'était associé à aucune icône.
Vous pouvez vérifier les noms corrects ici: https://material.io/tools/icons/?style=baseline
J'ai réalisé que personne ne parlait d'installer des hammerJs avant de l'importer dans votre application. Pour les personnes confrontées à un problème similaire, vous devez d'abord importer hammerJs, vous pouvez utiliser NPM, Yarn ou Google CDN pour l'installation. Cette réponse concerne une installation avec NPM ou Yarn:
MNP
npm install --save hammerjs
Fil
yarn add hammerjs
Après l’installation, importez-le sur le point d’entrée de votre application (par exemple, src/main.ts).
import 'hammerjs';
Si vous préférez utiliser Google CDN, veuillez visiter le document Angular pour plus d'explications https://material.angular.io/guide/getting-started
J'ai rencontré le problème des icônes ne s'affiche pas pour moi. J'avais suivi les étapes fournies par Basavaraj Bhusani mais ne fonctionne toujours pas.
J'ai trouvé que le problème était que dans mon scss, j'avais le text-transform: uppercase
qui faisait que l'icône ne faisait qu'afficher le contenu 'arrow_forward'. Je devais changer le text-transform: none
sur l'icône spécifiquement, sinon cela ne rendrait pas le rendu.
.child-item-action {
text-transform: uppercase;
&:after {
font-family: 'Material Icons';
content: "arrow_forward";
text-transform: none;
-webkit-font-feature-settings: 'liga';
}
Dans mon cas, les icônes ne sont pas apparues car j’ai bousillé mes polices en utilisant! Important. En supprimant cela, les icônes sont apparues.