【发布时间】:2025-11-29 22:40:01
【问题描述】:
我正在与一位同事讨论在 Angular 模板上显示数据的不同方式(下面的示例显示了多个单词的情况)。
在 Angular 模板上从条件渲染数据时,最佳实践是什么?在 Angular 模板的表达式中使用结构指令或函数或三元调用是否更高效?
这 3 个场景中哪一个最有效?
tickets.component.html
1.
<span class="total-text">Total Ticket<ng-container *ngIf="ticketing.inProgressNum !== 1">s</ng-container></span>
2.
<span class="total-text"> {{ ticketing.inProgressNum !== 1 ? 'Total Tickets' : 'Total Ticket'}} </span>
3.
<span class="total-text"> {{ getTicketCopy(ticketing.inProgressNum) }} </span>
tickets.component.ts
getTicketCopy(ticketsInProgress) {
return ticketsInProgress !== 1 ? 'Total Tickets' : 'Total Ticket'
}
感谢您的建议!
【问题讨论】:
-
我会将末尾的 s 包装在一个条件容器中
-
@AdrianBrand 所以第一个?
-
我认为在这种情况下,管道实际上是性能最高的。函数和表达式是不纯的,因此它们需要在每个变更检测周期上进行评估。管道是纯管道,因此它只检查输入本身是否发生了变化,而不是基础条件,并且只评估它是否确实发生了变化。
-
@bryan60 好的 - 我会研究管道解决方案
-
我添加了一个管道解决方案作为答案
标签: javascript angular angular2-template