Angular 2 - ngSwitch,具有在组件类中定义的只读常量

时间:2017-08-22 11:56:08

标签: angular

我无法完成这项工作

export class DataTableComponent implements OnInit,OnChanges {

    public static readonly INPUT                      = 1;
    public static readonly DROP_DOWN                  = 2;
    public static readonly DATE_RANGE                 = 3;
    public static readonly PRODUCT_INPUT              = 4;

如果我使用DataTableComponent.INPUT,我得到

“INPUT不是未定义的一部分”错误

所以在模板中没有定义类名

但是当我删除类名时,INPUT似乎也未定义

             <div [ngSwitch]="column.type">
                    <ng-container *ngSwitchCase="INPUT">
                    </ng-container>
                    <ng-container *ngSwitchCase="DROP_DOWN">
                    </ng-container>
                    <ng-container *ngSwitchCase="DATE_RANGE">
                    </ng-container>
                    <ng-container *ngSwitchCase="PRODUCT_INPUT">
                    </ng-container>
                    <ng-container *ngSwitchDefault>
                        missing column.type
                    </ng-container>
                </div>

如何在ngSwitches中使用预定义常量?

感谢

1 个答案:

答案 0 :(得分:0)

Angular中模板表达式的范围也是它所关联的类 - 不幸的是不是静态成员。如果你需要它们是静态的,你可以在类文件中用getters包装它们,如下所示:

get input () {
  return DataTableComponent.INPUT;
}

这是显示此方法的PLUNKER