You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目中Transloco与Storybook集成报错求助

解决Transloco与Storybook协作问题

针对你遇到的Transloco管道触发NG0302错误、结构指令功能无效的问题,核心原因是Transloco的管道、结构指令未在Storybook的组件上下文正确注册,可通过以下方案解决:

方案一:独立组件场景

如果SomeComponent是独立组件(带有standalone: true),直接在组件的imports数组中添加TranslocoModule,确保组件能访问到Transloco的管道和指令:

// some.component.ts
import { Component } from '@angular/core';
import { TranslocoModule } from '@ngneat/transloco';

@Component({
  selector: 'app-some',
  standalone: true,
  imports: [TranslocoModule], // 新增该行
  templateUrl: './some.component.html',
})
export class SomeComponent {
  // 组件逻辑
}

方案二:NgModule场景

如果组件在NgModule中声明,需在Story元数据里通过moduleMetadata导入TranslocoModule,同时保留原有的applicationConfig配置以加载Transloco根配置:

// some.component.stories.ts
import type {Meta, StoryObj} from '@storybook/angular';
import {SomeComponent} from '../app/some/some.component';
import {applicationConfig, moduleMetadata} from '@storybook/angular';
import {TranslocoRootModule} from '../app/transloco-root.module';
import {importProvidersFrom} from '@angular/core';
import { TranslocoModule } from '@ngneat/transloco';

const meta: Meta<SomeComponent> = {
  component: SomeComponent,
  decorators: [
    applicationConfig({
      providers: [
        importProvidersFrom(TranslocoRootModule),
      ],
    }),
    moduleMetadata({
      imports: [TranslocoModule], // 新增该行,注册管道和指令
    }),
  ],
};

export default meta;
type Story = StoryObj<SomeComponent>;

export const Some: Story = {
  render: () => ({
    props: {
      label: 'SomeComponent',
      primary: true,
    },
  }),
};

验证注意事项

  • 确认TranslocoRootModule已正确配置翻译加载器、默认语言等核心逻辑
  • 重启Storybook服务,确保配置变更生效

内容的提问来源于stack exchange,提问作者Mick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:15:23