Проблемы проверки длины модели представления - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть страница с представлением списка:

<ListView items="{{ tasteList }}" visibility="{{tasteList.length&gt; 0 ? 'visible' : 'collapse'}}">

Я пытаюсь проверить длину вкуса и переключаю видимость, чтобы представление списка отображалось только при наличии элементов в нем.и в этом случае я отрисовываю другой макет:

    <StackLayout visibility="{{tasteList.length = 0 ? 'visible' : 'collapse'}}">

В моем тестовом случае возвращено 3 элемента.С помощью приведенного выше кода при начальной загрузке страницы список не отображается, и появляется мой StackLayout.если я отойду от страницы и вернусь, список будет отображен (пока я не очищаю viewmodel0.

Если я удаляю условие и просто делаю вид списка все время видимым, страницазагружает просмотр списка и три элемента, как и ожидалось.

Кажется, что условие проверяется до фактической загрузки модели представления и не обновляется впоследствии. Когда я помещаю <Label text="{{ tasteList.length }}" /> в верхней части страницы, я вижу "0 "в течение примерно 1 секунды, а затем переключается на" 3 ", но видимость не переключается на моем ListView / StackLayout. Что я делаю не так?

1 Ответ

0 голосов
/ 26 сентября 2019

Предполагается, что вы используете == или === в выражении (условный оператор для видимости) и, что более важно, вы должны упомянуть атрибут перед выражением, который должен вызывать изменение при обновлении.

Пример

<StackLayout visibility="{{ tasteList.length, tasteList.length === 0 ? 'visible' : 'collapse'}}">

Из документов Использование выражений для привязок

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