角度用のマテリアルをインストールしました
アプリモジュールMatIconModuleに(import { MatIconModule } from '@angular/material/icon';
で)インポートしました
私はngmoduleインポートの下にそれを追加しました:
@NgModule({
imports: [
//...
MatIconModule,
//...
すべてのスタイルシートをインポートしました
また、実際に(しようとしている)アプリケーションコンポーネントにインポートしました(先頭に別のimport {MatIconModule} from '@angular/material/icon';
行があります)。
ただし、マテリアルアイコンは表示されません。
たとえば、次の行では:
<button mat-icon-button (click)="snav.toggle()"><mat-icon>menu</mat-icon></button>
私はこのようなものを期待しています:
しかし、私はこれを取得します:
何か提案がありますか?
マテリアルアイコンのCSSスタイルシートを追加します!
以下をindex.htmlに追加します。
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
SASSを使用している場合、メイン.scss
ファイルに次の行を追加する必要があります。
@import url( " https://fonts.googleapis.com/icon?family=Material+Icons ");
MatIconModuleをインポートし、index.htmlで次のURLを使用する必要があります
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
完全なソリューションは次のとおりです。
ステップ1
プロジェクトにMatIconModule
をインポートする必要があります。私のプロジェクトでは、必要なコンポーネントを別のファイルにインポートし、それをAppModuleにインポートします。これを使用するか、直接インポートできます。
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 { }
ステップ2
アイコンフォントをindex.html
にロードします。
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
私の場合、書いたアイコン名はどのアイコンにも関連付けられていません。
ここで正しい名前を確認できます: https://material.io/tools/icons/?style=baseline
アプリにインポートする前に、最初はhammerJsのインストールについて誰も話していないことに気付きました。同様に、最初にhammerJsをインポートする必要がある同様の問題がある場合は、インストールにNPM、Yarn、またはgoogle CDNのいずれかを使用できます。この回答は、NPMまたはYarnを使用したインストール用です。
NPM
npm install --save hammerjs
糸
yarn add hammerjs
インストール後、アプリのエントリポイント(src/main.tsなど)にインポートします。
import 'hammerjs';
Google CDNを使用する場合は、Angularの資料を参照してください。詳細については、 https://material.angular.io/guide/getting-started
アイコンが表示されない問題に遭遇しました。 Basavaraj Bhusaniによって提供された手順に従いましたが、まだ機能しませんでした。
私の問題は、私のscssにtext-transform: uppercase
があり、それがアイコンにコンテンツ「arrow_forward」を表示させるだけだったことでした。アイコンのtext-transform: none
を変更する必要がありました。そうしないと、レンダリングされません。
.child-item-action {
text-transform: uppercase;
&:after {
font-family: 'Material Icons';
content: "arrow_forward";
text-transform: none;
-webkit-font-feature-settings: 'liga';
}
私の場合、!importantを使用してフォントを台無しにしたため、アイコンは表示されませんでした。それを取り除くとアイコンが表示されました。