Angular 2 ng2 如何在模板中使用TypeScript枚举?

11

我有一个用于多个不同类型过滤器的组件。 为了进行类型识别,我想使用带有过滤器类型的枚举。 当以下示例不起作用时,如何在模板中使用枚举?

我认为只需在要使用此枚举的组件中导入枚举即可使其正常工作。

import { FilterType } from './types/FilterType';

在模板中像这样使用FilterType.INPUT_SELECTFilterType.INPUT_TEXT,但是当我使用变量时它不起作用,也无济于事。

<div *ngFor='let filter of filters'>
  <select *ngIf='filter.type === checkType.INPUT_SELECT'>...</select>
  <input *ngIf='filter.type === checkType.INPUT_TEXT'></input>
</div>
...
export class FiltersComponent {
  checkType: FilterType;
  @Input() filters: any[];
}
...
export enum FilterType {
  INPUT_SELECT,
  INPUT_TEXT
}
1个回答

15
您需要为`checkType`分配一个值:
checkType: FilterType = FilterType;

'typeof FilterType' 类型无法分配给 'Type' 类型。 - Adam Michalski
抱歉,我假设对枚举的引用将是“Type”类型。我不太了解TS,我只在本地使用Dart。您可以使用“any”。 “Object”也应该可以。 - Günter Zöchbauer
1
它能工作,但现在我以不同的视角看待它,我将把这个枚举作为参数传递。谢谢。 - Adam Michalski
2
你可以将类型更改为 checkType: FilterType = FilterType; 或者只是 checkType = FilterType - Adam Michalski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接