代码之家  ›  专栏  ›  技术社区  ›  r3plica

fontawome不使用角度跨度

  •  2
  • r3plica  · 技术社区  · 6 年前

    我是新来的角,所以请忍受我。 我正在尝试在我的项目中使用fontawome。最初我是通过cdn加载的,但我想正确地使用它。 所以我进口了 FontAwesomeModule 进入我的 WidgetModule . 看起来是这样的:

    import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';
    
    import { WidgetRoutingModule } from './widget-routing.module';
    import { SharedModule } from '@pyb-shared/shared.module';
    import { WidgetComponent } from './widget.component';
    import { ScenariosComponent } from './scenarios/scenarios.component';
    import { QuestionsComponent } from './questions/questions.component';
    import { AnswersComponent } from './answers/answers.component';
    import { ResultsComponent } from './results/results.component';
    
    import { AnswerButtonComponent } from './shared/answer-button/answer-button.component';
    import { HeaderComponent } from './shared/header/header.component';
    import { LoadingButtonComponent } from './shared/loading-button/loading-button.component';
    import { MainProductComponent } from './shared/main-product/main-product.component';
    import { MatchesComponent } from './shared/matches/matches.component';
    import { ProductComponent } from './shared/product/product.component';
    import { QuestionSplitComponent } from './shared/question-split/question-split.component';
    
    import { AnswersService } from './answers/answers.service';
    import { QuestionsService } from './questions/questions.service';
    import { ResultsService } from './results/results.service';
    import { ScenariosService } from './scenarios/scenarios.service';
    
    import { AnswerMatchService } from './shared/answer-match.service';
    import { DuplicateService } from './shared/duplicate.service';
    import { FilterService } from './shared/filter.service';
    import { FormulaService } from './shared/formula.service';
    import { MatchesService } from './shared/matches.service';
    import { PickService } from './shared/pick.service';
    import { QuestionSplitService } from './shared/question-split/question-split.service';
    import { StateService } from './shared/state.service';
    import { WidgetService } from './widget.service';
    
    import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
    import { library } from '@fortawesome/fontawesome-svg-core';
    import { faSquare, faCheckSquare } from '@fortawesome/pro-solid-svg-icons';
    
    @NgModule({
      imports: [
        CommonModule,
        WidgetRoutingModule,
        SharedModule,
        FontAwesomeModule
      ],
      declarations: [
        WidgetComponent,
        ScenariosComponent,
        QuestionsComponent,
        AnswersComponent,
        ResultsComponent,
    
        AnswerButtonComponent,
        HeaderComponent,
        LoadingButtonComponent,
        MainProductComponent,
        MatchesComponent,
        ProductComponent,
        QuestionSplitComponent
      ],
      providers: [
        AnswersService,
        QuestionsService,
        ResultsService,
        ScenariosService,
    
        AnswerMatchService,
        DuplicateService,
        FilterService,
        FormulaService,
        MatchesService,
        PickService,
        QuestionSplitService,
        StateService,
        WidgetService
      ]
    })
    export class WidgetModule {
      constructor() {
        console.log('WidgetModule loaded.');
        library.add(faSquare, faCheckSquare);
      }
    }
    

    我想在我的组件上显示两个图标,这样你可以在上面的模块中看到我添加的 法斯奎尔 法克尔广场 . 在我的组件(称为 场景组成 ,我只有这个跨度:

    <span class="fas fa-square"></span>
    

    从我上面提供的链接来看:

    https://github.com/FortAwesome/angular-fontawesome

    看起来应该能用。 我有 fontawsome模块 进口的 场景组成 小模块 作为它的父模块,所以它应该可以正常工作。 根据这一行:

    添加到库中的图标将可用于父模块也导入fontawsomemodule的任何其他组件。

    在我的模块中,我确实设置了我的库。至少在我的理解中,它应该在这个模块中工作。

    我做得对吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   SiddAjmera    6 年前

    如果你想用 angular-fontawesome 你必须听从他们的指导。您的实现存在一些问题。

    第一个问题是:

    import { faSquare, faCheckSquare } from '@fortawesome/pro-solid-svg-icons';
    

    您要从导入 @fortawesome/pro-solid-svg-icons 这是Fortawome的专业版。

    你应该从 @fortawesome/free-solid-svg-icons 而是:

    import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
    import { library } from '@fortawesome/fontawesome-svg-core';
    import { faSquare, faCheckSquare } from '@fortawesome/free-solid-svg-icons';
    

    然后在AppModule中:

    export class AppModule {
      constructor() {
        library.add(faSquare, faCheckSquare);
      }
    }
    

    第二个问题是,从指南 角度字体太棒了 ,似乎必须将其用作组件: fa-icon 它有一个 @Input 财产 [icon] 必须提供要应用于它们的类的名称。

    像这样:

    <div style="text-align:center">
      <fa-icon [icon]="['fas', 'square']"></fa-icon>
      <br>
      <fa-icon [icon]="['fas', 'check-square']"></fa-icon>
    </div>
    

    这里有一个 Sample StackBlitz 为了你的食物。

    推荐文章