我有一个全局变量来存储这样的国家/地区列表:
export var COUNTRY_CODES = ["AD", "AE", "AF" /* and more */];
Run Code Online (Sandbox Code Playgroud)
在我的一个组件中,我使用普通的import语句导入了变量
import { COUNTRY_CODES } from "../constants";
Run Code Online (Sandbox Code Playgroud)
我可以在组件代码中自由访问这个全局变量,但是在HTML模板上无法实现这样的功能:
<option *ngFor="let countryCode of COUNTRY_CODES" [value]="countryCode">{{countryCode | countryName}}</option>
Run Code Online (Sandbox Code Playgroud)
我可以通过定义局部变量将全局变量传递给组件,并在初始化期间为其分配全局变量.
ngOnInit() {
this.countryCodes = COUNTRY_CODES;
}
Run Code Online (Sandbox Code Playgroud)
并更改ngFor此局部变量的to循环以使其工作.
我的问题:这是正确的方法吗?每次我想在模板中使用全局变量时,我都不太习惯定义桥接变量.
这*ngIf:
<div *ngIf="type === FilterType.DateRangeFilter">
...
</div>
Run Code Online (Sandbox Code Playgroud)
结果出现错误
error TS2339: Property 'FilterType' does not exist on type 'FilterComponent
即使枚举类型FilterType被导入到组件中:
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 {
}
}
Run Code Online (Sandbox Code Playgroud)
从这里:
export enum FilterType {
DateRangeFilter, SensorSelectFilter
}
Run Code Online (Sandbox Code Playgroud)
有什么想法为什么这行不通吗?