无法在useValue中分配const值

时间:2019-02-24 14:09:54

标签: angular angular-providers

我已经创建了const类// ./dist/public.js [1, 2, 3].map(function (num) { return "number ".concat(num); }); var x = 2, y = 4, z = 6;

ElementConst

因此,我已将该类导入我的模块中,并尝试为其分配export class ElementConst { public static LINK = 'LINK'; public static HEADING_1 = 'heading-1'; public static HEADING_2 = 'heading-2'; public static HEADING_3 = 'heading-3'; public static HEADING_4 = 'heading-4'; public static HEADING_5 = 'heading-5'; public static HEADING_6 = 'heading-6'; public static PARAGRAPH = 'paragraph'; public static STRONG = 'BOLD'; }

useValue

为什么我无法在export const CONTENT_MAPPINGS_PROVIDER: Provider = [ { provide: CONTENT_MAPPINGS, useValue: { ElementConst.HEADING_1: HeadingComponent, // trying to do something like this, which throws error 'heading-2': HeadingComponent, 'heading-3': HeadingComponent, 'heading-4': HeadingComponent, 'heading-5': HeadingComponent, 'heading-6': HeadingComponent, 'paragraph':ParagraphComponent } } ]; 内分配值?

1 个答案:

答案 0 :(得分:1)

指定动态键时,需要将其包装在[]中。

这是如何使代码通过编译器的准系统示例:

export class ElementConst {
    public static LINK = 'LINK';
    public static HEADING_1 = 'heading-1';
    public static HEADING_2 = 'heading-2';
    public static HEADING_3 = 'heading-3';
    public static HEADING_4 = 'heading-4';
    public static HEADING_5 = 'heading-5';
    public static HEADING_6 = 'heading-6';
    public static PARAGRAPH = 'paragraph';
    public static STRONG = 'BOLD';
}

interface Provider {
  provide: any;
  useValue: any;
}

const HeadingComponent = {};
const ParagraphComponent = {};

export const CONTENT_MAPPINGS_PROVIDER: Provider[] = [
  {
    provide: '',
    useValue: {
      [ElementConst.HEADING_1]: HeadingComponent,
      'heading-2': HeadingComponent,
      'heading-3': HeadingComponent,
      'heading-4': HeadingComponent,
      'heading-5': HeadingComponent,
      'heading-6': HeadingComponent,
      'paragraph': ParagraphComponent,
    }
  }
];