angular - 在 Angular 模板中使用元组类型
问题描述
如何在角度模板中使用元组类型?我在控制器中声明了两个属性:
export enum DisplayMode1 {
Edit = 'Edit',
Decided = 'Decided',
PartsRequested = 'PartsRequested'
};
export enum DisplayMode2 {
Edit = 'Edit',
Submitted = 'Submitted',
Returned = 'Returned'
};
displayMode: [
DisplayMode1,
DisplayMode2,
];
DisplayModes = [
DisplayMode1,
DisplayMode2,
];
<h3
*ngIf="
displayMode !== [DisplayModes[0].Decided, DisplayModes[1].Submitted]
"
>
当我尝试在模板中使用它们时,出现构建错误:
类型 'typeof DisplayMode1 | 上不存在属性 'Submitted' 类型的 DisplayMode2'。类型“typeof DisplayMode1”上不存在属性“已提交”。
218 displayMode !== [DisplayModes[0].Decided, DisplayModes[1].Submitted]
但是,如果我在模板中使用 DisplayModes[].Edit,这对于两种显示模式都很常见,它可以工作。
解决方案
DisplayModes = [
DisplayMode1,
DisplayMode2,
] as const; // will fix your main error
我注意到的另一个问题是displayMode !== [DisplayModes[0].Decided, DisplayModes[1].Submitted]
。它永远不会起作用,因为数组是通过引用进行比较的。所以你需要做某事displayMode[0] !== DisplayModes[0].Decided && displayMode[1] !== DisplayModes[1].Submitted
推荐阅读
- python - 使用 API 将通用二进制文件上传到 GDrive
- python - LSTM Keras 中的生成器函数,用于输出一个文件的小批量
- less - Sublime text 3 - 无法加载插件 clean-css 请确保它安装在less下或与less相同的级别
- vba - VBA 编译错误语法错误是什么问题?
- javascript - 如何将js中的字符串评估为模板
- java - 内联类在 openJdk 上生成奇怪的名称
- templates - 重载模板函数推演错误
- firebase - 如何不获取数据库处理程序的最后一个条目?
- openshift - 已达到每个 Pod 的最大内存使用量,但仍在限制范围内
- symfony - Nginx w/ 2 Symfony 安装不能使用单独的数据库