【问题标题】:Angular 2 ng2 How to use TypeScript enum inside template?Angular 2 ng2 如何在模板中使用 TypeScript 枚举?
【发布时间】:2016-11-02 04:43:52
【问题描述】:

我有多个不同类型过滤器的组件。 对于类型识别,我想将枚举与过滤器类型一起使用。 当下面的示例不起作用时,如何在模板中使用枚举?

我认为它应该只通过在我想使用这个枚举的组件中导入枚举来工作。

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
}

【问题讨论】:

    标签: templates typescript angular angular-ng-if


    【解决方案1】:

    你需要给`checkType赋值:

    checkType: FilterType = FilterType;
    

    【讨论】:

    • 类型 'typeof FilterType' 不可分配给类型 'Type'
    • 抱歉,我假设对枚举的引用是Type 类型。我不太了解 TS,我只在本地使用 Dart。您可以使用anyObject 应该也可以。
    • 它可以工作,但现在我在不同的视图中看到它,我将把这个枚举作为参数传递。谢谢。
    • 您可以将类型更改为checkType: FilterType = FilterType; 或只是checkType = FilterType
    猜你喜欢
    • 2018-02-19
    • 2020-04-04
    • 2019-04-18
    • 2017-01-19
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    相关资源
    最近更新 更多