Использование NgClass и троичных выражений внутри шаблонов ListView и RadListView - PullRequest
0 голосов
/ 05 января 2019

Является ли использование [ngClass] и троичных выражений таким же, как использование *ngIf с точки зрения ущерба процессу утилизации элементов в ListView и RadListView?
Предположим, у меня есть 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>

1 Ответ

0 голосов
/ 05 января 2019

Вариант № 1 работает, но вариант № 2 сравнительно более эффективен, так как ему не придется обновлять стили при переработке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...