1

this *ngIf:

<div *ngIf="type === FilterType.DateRangeFilter">
    ...
</div>

results in the error

error TS2339: Property 'FilterType' does not exist on type 'FilterComponent

even though the enum type FilterType is imported into the component:

import { FilterType } from '../filter-collection/filter-collection.component'

@Component({
  selector: 'app-filter',
  templateUrl: './filter.component.html',
  styleUrls: ['./filter.component.css']
})
export class FilterComponent {

  constructor(private type : FilterType) {
  }

  ngOnInit(): void {

  }

}

from here:

export enum FilterType {
  DateRangeFilter, SensorSelectFilter
}

Any ideas why this wouldn't work?

1

2 Answers 2

6

Your HTML template doesnt have access to variables declared outside of your component. To resolve this, assign the enum to a variable within your component's scope

import { FilterType } from '../filter-collection/filter-collection.component'

@Component({
  selector: 'app-filter',
  templateUrl: './filter.component.html',
  styleUrls: ['./filter.component.css']
})
export class FilterComponent {

  constructor(private type : FilterType) {
  }

  ngOnInit(): void {

  }
  
  filterType = FilterType

}

and then in your template

<div *ngIf="type === filterType.DateRangeFilter">
    ...
</div>

Sign up to request clarification or add additional context in comments.

Comments

0

the property type is used in the FilterComponent as private, to be able to use it change it to public or create a new one in FilterComponent and assign it from the constructor

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.