angular - 从对象分配 mat-button-toggle-group 的默认值
问题描述
我正在尝试从一个对象设置初始value
值mat-button-toggle-group
,但我似乎无法设置它。
这是我的模板:
<mat-button-toggle-group
#stateFilters="matButtonToggleGroup"
class="calendar-view-toggle"
[value]="postsFilters.state"
(change)="changePostsStateFilter(stateFilters.value)"
>
<mat-button-toggle [value]="[postState.draft]">Drafts</mat-button-toggle>
<mat-button-toggle
[value]="[postState.awaitingApproval,postState.approvedFirst,postState.approvedSecond]"
>
Pending Approval
</mat-button-toggle>
<mat-button-toggle [value]="[postState.approved]">Approved</mat-button-toggle>
</mat-button-toggle-group>
这是我的 TS 文件:
export class CalendarListComponent {
postsFilters: IPostFilters = {
state: [EPostState.draft],
onlyToBeApprovedByMe: false,
};
changePostsStateFilter(states: EPostState[]) {
this.postsFilters.state = states;
this.loadPosts(this.postsFilters.state, 0);
}
}
export interface IPostFilters {
state?: EPostState[];
onlyToBeApprovedByMe?: boolean;
}
如果有人可以给我一些帮助,那就太好了!
解决方案
您可以使用 enum 以获得更好的可读性
您可以根据结果使用适当的值更新 selectedState
export enum PostEnum {
Option1,
Option2,
Option3
}
export class CalendarListComponent {
postEnum: typeof PostEnum = PostEnum;
selectedState = PostEnum.Option1;
}
<mat-button-toggle-group
[value]="selectedState"
(change)="changePostsStateFilter()">
<mat-button-toggle [value]="postEnum.Option1">Drafts</mat-button-toggle>
<mat-button-toggle [value]="postEnum.Option2">Pending Approval</mat-button-toggle>
<mat-button-toggle [value]="postEnum.Option3">Approved</mat-button-toggle>
</mat-button-toggle-group>
推荐阅读
- discord - 投票问题,增加正确数量的反应。(d.py)
- web-services - Nginx 将请求转发到本地 IP
- typescript - 如何强制 TypeScript 中已声明变量的类型?
- html - 如何实现下图中的布局?
- firebase - 如何在 Stack Navigation 中传递 React Native 中的导航道具?
- python - Azure 函数 - Pandas 数据帧到 Excel,写入 outputBlob 流
- java - 片段如何作为对话框显示在视图顶部
- transactions - 带有欧元货币的交易 API 订单对象
- postgresql - for条件和if条件组合怎么写?写代码**For循环**
- java - Spark java过滤器isin方法还是其他?