html - 基于函数返回显示不同元素的正确方法是什么
问题描述
所以基本上我想要展示的
- 作业未处理时的“Something1”
- 作业正在运行且状态为“0”时的“Something2”
- 'Something3' 当作业正在运行但状态是别的东西
我尝试了以下代码片段,但看起来外部模板中的 let-status 永远不会被分配。不确定实现是否正确,谁能给我两分钱来说明如何使这个逻辑起作用?
谢谢。
<span *ngIf="!isProcessing(); else elseBlock">
Something1
</span>
<ng-template #elseBlock let-status="queryPlaybackStatus()" *ngIf="queryStatus() === '0'; else innerElseBlock">
<span>
Something2
</span>
<ng-template #innerElseBlock>
<span>
Something3
</span>
</ng-template>
</ng-template>
解决方案
我建议在你的组件中定义一个字符串,你可以更好地控制你的逻辑。在组件中,将字符串设置为适当的文本。
然后绑定到模板中的那个字符串。
我在这里没有你需要的所有逻辑,但是像这样:
isImage = false;
get statusText(): string {
if (!isProcessing()) {
this.isImage = false;
return 'Something1';
} else {
this.isImage = true;
return 'path to image';
}
}
这使用了一个 getter,它为组件属性提供了一种具有逻辑的方法。
然后只需statusText
在模板中绑定即可。
<span *ngIf='!isImage'>
{{statusText}}
</span>
<span *ngIf='isImage>
<img ...>
</span>
推荐阅读
- kubernetes-helm - kustomize 补丁覆盖参数名称和值
- django-tables2 - Django tables2自定义列未呈现
- karate - 空手道框架:避免将辅助 .features 视为真实测试
- pandas - Pandas groupby 以某种格式获取平均值
- c# - VS2019:项目 B 引用项目 A 和 VS,项目 B 在其中一个程序集上抛出“无法加载文件或程序集”
- javascript - 从 javascript 代码中运行 Cmd 命令时出错
- nrwl-nx - 如何使用angular和nest.js在nrwl nx monorepo中设置wallaby.js
- google-cloud-platform - 针对 Google IAP 使用 Salesforce 命名凭据
- r - 从访问 365 导入 R 中的数据
- javascript - 如何在 javascript (node.js) 中通过控制台获取输入?