首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular不能在动态组件中使用字体

Angular不能在动态组件中使用字体
EN

Stack Overflow用户
提问于 2018-10-05 19:25:05
回答 2查看 1.6K关注 0票数 5

我使用这个post动态加载了一些组件

代码语言:javascript
复制
 import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';

 const template =`
    <div class="btn-group">
      <button (click)="play()" class="btn btn-sm btn-outline-info">
        <fa-icon icon="play"></fa-icon>
      </button>

    </div>`;
    const tmpCmp = Component({template: template})(class {

    });
    const tmpModule = NgModule({
      imports: [CommonModule,FontAwesomeModule],
      declarations: [tmpCmp]
    })(class {
    });

    this._compiler.compileModuleAndAllComponentsAsync(tmpModule)
        .then((factories) => {
            const f = factories.componentFactories[0];
            const cmpRef = f.create(this._injector, [], null, this._m);
            cmpRef.instance.name = 'B component';
            this._container.insert(cmpRef.hostView);
        })

当使用fa-icon加载模板时,不会显示任何内容,也不会返回任何错误。

EN

回答 2

Stack Overflow用户

发布于 2018-10-05 21:49:08

如果你想动态添加一个fa类,我会使用ngClass来显示一个特定的fa图标,因为你可以使用插值:

在您的组件中:

代码语言:javascript
复制
public faIcon:string="fa-plane"

我在这里硬编码了一个fa-icon名称,但您可以随心所欲地设置它。

在您的模板中:

代码语言:javascript
复制
<span class="fa" [ngClass]="{faIcon}}></span>
票数 1
EN

Stack Overflow用户

发布于 2020-11-25 21:00:26

图标faPlay从包导入"@fortawesome/free-solid-svg-icons“

代码语言:javascript
复制
import { faPlay} from '@fortawesome/free-solid-svg-icons';

在动态模板中:

代码语言:javascript
复制
<fa-icon [icon]="faPlay"></fa-icon>

添加到类公共变量"faPlay":

代码语言:javascript
复制
const tmpCmp = Component({template: template})(class {
  faPlay = faPlay
});

结果:

代码语言:javascript
复制
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { faPlay} from '@fortawesome/free-solid-svg-icons';

 const template =`
    <div class="btn-group">
      <button (click)="play()" class="btn btn-sm btn-outline-info">
        <fa-icon [icon]="faPlay"></fa-icon>
      </button>

    </div>`;
    const tmpCmp = Component({template: template})(class {
      faPlay = faPlay
    });
    const tmpModule = NgModule({
      imports: [CommonModule,FontAwesomeModule],
      declarations: [tmpCmp]
    })(class {
    });

    this._compiler.compileModuleAndAllComponentsAsync(tmpModule)
        .then((factories) => {
            const f = factories.componentFactories[0];
            const cmpRef = f.create(this._injector, [], null, this._m);
            cmpRef.instance.name = 'B component';
            this._container.insert(cmpRef.hostView);
        })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52664581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档