Пользовательский интерфейс Nativescript не обновляется - PullRequest
0 голосов
/ 11 апреля 2020

Детская площадка: https://play.nativescript.org/?template=play-tsc&id=ZQ8J69&v=12

Кажется, я не могу получить доступ к элементам массива из моего шаблона пользовательского интерфейса. Я пытаюсь создать простую карту bin 1024 *. В пользовательском интерфейсе, если я это сделаю:

<Label text="{{ card }}" />

Я получаю [объект], как ожидалось.

<Label text="{{ card.b }}" />

дает мне [объект] , [объект] (массив), как и ожидалось.

<Label text="{{ card.b[0] }}" />

Я ничего не получаю. Как вы можете видеть из журнала консоли, card.b [0] определенно установлен.

Я не понимаю, почему мой пользовательский интерфейс не отражает то, что находится в моих наблюдаемых объектах / массивах

1 Ответ

0 голосов
/ 11 апреля 2020

Вы используете ObservableArray, а не простой массив. Вы не можете просто получить доступ к элементу по его индексу. Вам нужно будет позвонить getItem(index) в JavaScript. В XML возможно, что вы можете напрямую выполнить card.b._array[index] или написать функцию конвертера для получения значения из указанного индекса c.

FYI, ObservableArray обычно используется для построения пользовательский интерфейс динамически. Вы статически строите пользовательский интерфейс, пытаетесь получить доступ к индексу, который может существовать или не существовать. Используйте Repeater до l oop через массив и создавайте свой пользовательский интерфейс на основе того, что доступно. Если в этом массиве будет более 10 или 20 элементов, я бы предложил go с ListView вместо Repeater.

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