angular - 如何在 Angular 组件的 HTML 模板端使用联合类型
问题描述
在 Angular 组件的 HTML 部分,我想在不同的条件下显示一个复选框或一个图标。使用许可模型{ checked?: boolean; icon?: string }
,我可以这样做:
<input type="checkbox" [(ngModel)]="item.checked" *ngIf="!item.icon">
<i class="{{item.icon}}" *ngIf="item.icon">
此模型启用无效状态,例如同时具有checked
和icon
。拥有更强大的模型可能依赖于联合类型:{ checked: boolean } | { icon: string }
. 但它在 HTML 中不再起作用,因为在“联合类型”级别checked
也没有icon
可用,而仅适用于左或右大小写。
有没有办法在一些经过调整的 HTML 模板中使用这个模型?
解决方案
有点晚了,但我现在有类似的问题。如果找到了解决方案,但它不是很优雅。我希望有更好的东西......您可以将您的项目包装在 $any() 运算符中,如下所示:
<input type="checkbox" [(ngModel)]="$any(item).checked" *ngIf="!item.icon">
<i class="{{$any(item).icon}}" *ngIf="item.icon">
那应该行得通。
推荐阅读
- javascript - ESLint 变量已定义但从未使用过(no-unsed-vars)
- android - 有没有办法将模拟条形码从 appium 移动自动化发送到测试 apk?
- javascript - 使用 DataTable.js 和实体时出错
- linux - 使用 CURL 或 WGET 读取 Gzip 文件页脚
- javascript - 捕获当前函数闭包
- macos - 更改 Atom 编辑器复制/粘贴行为
- dagger-2 - Dagger 不使用 void 方法进行注入
- python - Python:将额外的参数传递给可调用的
- azure-cosmosdb - 在 CosmosDB 中创建文档时 disableAutomaticIdGeneration 是否有性能优势?
- ansible - 需要 ansible 库存文件详细信息