检索图标时出错:找不到名称为“:done”的图标

San*_*ord 3 angular-material angular

这是我第一次使用Angular Material,但是Mat-icons出现了问题。

我的index.html具有: <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

在共享模块中,导入了图标:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import {
    MatButtonModule,
    MatCardModule,
    MatIconModule,
    MatMenuModule,
    MatToolbarModule,
} from '@angular/material';

@NgModule({
    imports: [
        CommonModule,
        MatButtonModule,
        MatCardModule,
        MatIconModule,
        MatMenuModule,
        MatToolbarModule
    ],
    exports: [
        MatButtonModule,
        MatCardModule,
        MatIconModule,
        MatMenuModule,
        MatToolbarModule
    ],
    declarations: []
})
export class SharedModule { }
Run Code Online (Sandbox Code Playgroud)

然后将SharedModule导入我的LoginModule中:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '../../shared/shared.module';
import { LoginRoutingModule } from './login.routing.module';
import { LoginContainerComponent } from './login-container/login-container.component';
import { LoginViewComponent } from './login-view/login-view.component';

@NgModule({
    imports: [
        CommonModule,
        LoginRoutingModule,
        SharedModule
    ],
    declarations: [
        LoginContainerComponent,
        LoginViewComponent
    ]
})

export class LoginModule { }
Run Code Online (Sandbox Code Playgroud)

最后,我在视图中使用mat-icon:

<mat-card>
    <mat-card-title-group>
        <mat-card-title>
            Welcome to Track-It
        </mat-card-title>
        <mat-card-subtitle>
            In order to use all of Track-it's goodness, please login...
        </mat-card-subtitle>
    </mat-card-title-group>
    <mat-card-content>
        Lorem, ipsum dolor sit amet consectetur adipisicing elit. Maxime quod labore autem. Sunt expedita ullam quis in deserunt rem eum, quas culpa quo aut eius consequuntur magni. Voluptates, mollitia ullam.
    </mat-card-content>
    <mat-card-actions [align]="'end'">
        <button mat-flat-button>
            Login&nbsp;
            <mat-icon svgIcon="done"></mat-icon>
        </button>
    </mat-card-actions>
</mat-card>
Run Code Online (Sandbox Code Playgroud)

悬停与此,我得到以下错误: Error retrieving icon: Unable to find icon with the name ":done"

我绝不是Angular的新手,但绝对不是Angular Material的新手,所以不能确定这里发生了什么。我上面有什么应该工作。有什么想法吗?

小智 7

对我来说,在测试台中导入MatIconTestingModule解决了问题,而不是MatIconModule.


Plo*_*ppy 6

这就是您应该使用mat-icon组件的方式

<mat-icon>done</mat-icon>
Run Code Online (Sandbox Code Playgroud)

  • #well实际上,使用自定义图标的格式为... svgIcon =“ myCustomIcon”&gt; &lt;/ mat-icon&gt; (2认同)

Lui*_*ndo 6

如果您使用自定义图标。那么你应该使用数据绑定

<mat-icon  [svgIcon]="'done'"></mat-icon>
Run Code Online (Sandbox Code Playgroud)