关于angular:enum typescript bug如果我的字符串有空格

enum typescript bug if my string have space

我的枚举有问题

我用字符串编写枚举,并在*ngfor中浏览我的枚举

但是如果我的字符串有一个空格,页面会显示我2个元素

这是我的枚举:

1
2
3
4
5
6
7
8
export enum ComponentCategory {
   FormControls =  'Form   Controls',
   Containers =  'Containers' ,
   Boxes =  'Boxes',
   DataPresentation =  'DataPresentation',
   Layout =  'Layout',
   Miscellaneous =  'Miscellaneous',
}

例如,表单控件的显示是表单控件和表单控件的两倍

谁能解决这个问题?

谢谢


您不必在typescript中显式地声明enum值的字符串表示形式。

你只需要:

1
2
3
4
5
6
7
8
export enum ComponentCategory {
  FormControls,
  Containers,
  Boxes,
  DataPresentation,
  Layout,
  Miscellaneous
}

要将枚举成员作为字符串获取,然后可以使用(有关源代码,请参阅此so):

1
2
3
4
5
6
for (var enumMember in ComponentCategory ) {
   var isValueProperty = parseInt(enumMember, 10) >= 0
   if (isValueProperty) {
      console.log(ComponentCategory [enumMember]);
   }
}

*ngFor一起使用…

1
2
3
4
5
6
7
8
9
10
11
12
function getEnumNames(){
    var names: Array<string> = new Array<string>();
    for (var enumMember in ComponentCategory ) {
       var isValueProperty = parseInt(enumMember, 10) >= 0
       if (isValueProperty) {
          names.push(ComponentCategory [enumMember]);
       }
    }
    return names.map(name => name.replace(/([A-Z])/g, ' $1').trim());
}

// in html