gpt4 book ai didi

angular-fontawesome + FaIconLibrary + Angular + Storybook.js = :(

转载 作者:行者123 更新时间:2023-12-05 01:39:32 26 4
gpt4 key购买 nike

只是想将 angular-fontawesome 与 Storybook.js 一起用作库 (FaIconLibrary)。在以下文档中 https://github.com/FortAwesome/angular-fontawesome/blob/master/docs/usage/icon-library.md#using-the-icon-library我要向构造函数添加一个属性。仅在 Storybook.js 文件 (index.stories.ts) 中,我看不到向构造函数添加任何内容的方法,因为它不存在。有人解决这个问题或有好的解决方法吗?谢谢

最佳答案

一个选择是使用 Angular 的 APP_INITIALIZER加载故事书时执行任意代码的函数。在这种特殊情况下,您可以在应用程序初始化过程中使用必要的图标配置 FaIconLibrary

假设您有以下使用 fa-icon 的组件,并且您想在故事书中使用它:

import { Component, Input } from '@angular/core';

@Component({
selector: 'app-user-detail',
template: `
<h1>
<fa-icon icon="user"></fa-icon>
{{ fullName }}
</h1>
<p>Full name: {{ fullName }}</p>
`,
})
export class UserDetailComponent {
@Input()
fullName: string;
}

在这个组件的故事书中,您可以在 moduleMetadata 中提供一个 APP_INITIALIZER称呼。此代码将在故事书加载时执行,并将配置 FaIconLibrary:

import { APP_INITIALIZER } from '@angular/core';
import { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { faUser } from '@fortawesome/free-solid-svg-icons';
import { moduleMetadata, storiesOf } from '@storybook/angular';
import { UserDetailComponent } from '../app/user-detail.component';

storiesOf('User Detail', module)
.addDecorator(
moduleMetadata({
imports: [ FontAwesomeModule ],
declarations: [ UserDetailComponent ],
// The key bit is the providers array below.
providers: [
{
provide: APP_INITIALIZER,
useFactory: (iconLibrary: FaIconLibrary) => {
return async () => {
// Add the necessary icons inside the initialiser body.
iconLibrary.addIcons(faUser);
};
},
// When using a factory provider you need to explicitly specify its
// dependencies.
deps: [ FaIconLibrary ],
multi: true,
},
],
}),
)
.add('default', () => {
return {
template: `<app-user-detail [fullName]="fullName"></app-user-detail>`,
props: {
fullName: 'John Doe',
},
};
});

完整代码也可以在 GitHub 上找到.

关于angular-fontawesome + FaIconLibrary + Angular + Storybook.js = :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58175700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com