Ole*_*Ole 2 javascript typescript angular
我回顾这段位的代码,是一个选择滤波器组件模型为TodoS:
export enum VISIBILITY_FILTER {
SHOW_COMPLETED = 'SHOW_COMPLETED',
SHOW_ACTIVE = 'SHOW_ACTIVE',
SHOW_ALL = 'SHOW_ALL'
}
export type TodoFilter = {
label: string;
value: VISIBILITY_FILTER;
};
export const initialFilters: TodoFilter[] = [
{ label: 'All', value: VISIBILITY_FILTER.SHOW_ALL },
{ label: 'Completed', value: VISIBILITY_FILTER.SHOW_COMPLETED },
{ label: 'Active', value: VISIBILITY_FILTER.SHOW_ACTIVE }
];
Run Code Online (Sandbox Code Playgroud)
看起来好像所有这些都可以替换为:
export enum VISIBILITY_FILTER {
SHOW_COMPLETED = 'Completed',
SHOW_ACTIVE = 'Active',
SHOW_ALL = 'All'
}
Run Code Online (Sandbox Code Playgroud)
因此,active过滤器属性将仅由枚举键入VISIBILITY_FILTER,我们将在模板中循环遍历 then enum,如下所示(伪代码):
<option *ngFor="let filter of VISIBILITY_FILTER;" [ngValue]="filter">{{VISIBILITY_FILTER[VISIBILITY_FILTER.filter]}}
</option>
Run Code Online (Sandbox Code Playgroud)
这看起来合理还是我错过了什么?
小智 5
尝试:
public get visFilterValues() {
return Object.keys(VISIBILITY_FILTER).map(k => VISIBILITY_FILTER[k]);
}
Run Code Online (Sandbox Code Playgroud)
和
<option *ngFor="let filter of visFilterValues" [ngValue]="filter">{{filter}}</option>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |