在ListView和RadListView模板中使用NgClass和三元表达式

问题描述 投票:0回答:1

使用[ngClass]和三元表达式,就像在损害ListView和RadListView中元素的回收过程中使用*ngIf一样? 假设我有一个Label,有时应该显示“缺失”文本,红色,有时只显示其他黑色文本。 在NativeScript中显示此功能的最有效方法是什么?

选项1:

  1. 使用布尔标志从后端获取一些数据,表明某些元素应该具有红色“缺失”。
  2. 在HTML中的模板内部,使用布尔值调整文本颜色css类。
  3. 在HTML内部,使用三元表达式调整“缺失”一词。

例: <Label [text]="!item.isMissing ? item.title : 'missing'" [ngClass]="{'missing-text': item.isMissing, 'regular-text': !item.isMissing}"></Label>

选项#2:

  1. 使用布尔标志从后端获取一些数据,表明某些元素应该具有红色“缺失”。
  2. 使用模板选择器并创建一个具有红色“缺失”文本的模板(标记为A)。
  3. 为定期显示的所有其他元素创建不同的模板(标记为B)。

模板A中标签的示例: <Label text="missing" class="missing-text"></Label> 对于模板B中的标签: <Label [text]="item.title" class="regular-text"></Label>

nativescript
1个回答
1
投票

选项#1有效但选项#2相对更高效,因为它不需要在回收时更新样式。

© www.soinside.com 2019 - 2024. All rights reserved.