Является ли использование [ngClass]
и троичных выражений таким же, как использование *ngIf
с точки зрения ущерба процессу утилизации элементов в ListView и RadListView?
Предположим, у меня есть Label
, который иногда должен отображать «отсутствующий» текст красным цветом, а иногда просто отображать другой текст черным цветом.
Какой самый эффективный способ показать это в NativeScript?
Вариант № 1:
- Получение некоторых данных из бэкэнда с логическим флагом, предлагая
какой-то элемент должен иметь красный цвет "отсутствует".
- Внутри шаблона в HTML, обусловливая класс CSS цвета текста с логическим значением.
- Внутри HTML, слово "отсутствует" обусловлено троичным выражением.
Пример:
<Label [text]="!item.isMissing ? item.title : 'missing'" [ngClass]="{'missing-text': item.isMissing, 'regular-text': !item.isMissing}"></Label>
Вариант № 2:
- Получение некоторых данных из бэкэнда с логическим флагом, предлагая
какой-то элемент должен иметь красный цвет «отсутствует».
- С помощью селектора шаблонов создайте шаблон (помеченный буквой A) с красным «пропущенным» текстом.
- создание другого шаблона (отмеченного B) для всех других элементов, которые регулярно отображаются.
Пример метки в шаблоне A:
<Label text="missing" class="missing-text"></Label>
и для ярлыка в шаблоне B:
<Label [text]="item.title" class="regular-text"></Label>