Есть ли способ динамически добавлять данные в Gird? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть карусель с n числом виджетов, и я хочу загрузить еще одно n элементов в карусель, как только пользователь сфокусирует последний элемент карусели.Я добавил afteralign прослушиватель событий в карусели для обнаружения навигации между элементами карусели и внутри слушателя. Я создал один виджет и попытался добавить его к текущей карусели, используя appendChildWidget() метод

 _handleLazyLoading: function (evt) {
                var selectedItem = evt.target.getActiveChildWidget().getDataItem();
                if (selectedItem.page < selectedItem.totalPages) {
                    if (evt.target.getActiveChildIndex() === evt.target.getChildWidgetCount() - 3) {
                        var sampleData={"type":"VOD","id":1234,"accessLevel":"GRANTED","title":"sample","description":"A look back at all the Premier League action from the 31st of March 2018.","thumbnailUrl":"url of image","metaFields":{},"tags":
                        ["review","match-round-32"],"watchProgress":0,"favourite":true,"duration":3098,"watchedAt":1522675749000}
                        var videoCard=new CommonVideoCard(sampleData);
                        evt.target.appendChildWidget(sampleData)
                    }
                }
            }

Это то, что код моего слушателя событий.Я также проверил в домене, если я ставлю точку останова после добавления метода, тогда я могу видеть данные в домене, после чего кажется, что конкретная карусель застряла, и я не могу перейти к другим элементам в карусели.Я только что попробовал с removeWidget методом, и он работает.Любая помощь будет по достоинству оценена.

1 Ответ

0 голосов
/ 09 октября 2018

установите setWidgetLengths(length); после добавления нового дочернего виджета.

Таким образом, код будет выглядеть как

 _handleLazyLoading: function (evt) {
                var selectedItem = evt.target.getActiveChildWidget().getDataItem();
                if (selectedItem.page < selectedItem.totalPages) {
                    if (evt.target.getActiveChildIndex() === evt.target.getChildWidgetCount() - 3) {
                        var sampleData={"type":"VOD","id":1234,"accessLevel":"GRANTED","title":"sample","description":"A look back at all the Premier League action from the 31st of March 2018.","thumbnailUrl":"url of image","metaFields":{},"tags":
                        ["review","match-round-32"],"watchProgress":0,"favourite":true,"duration":3098,"watchedAt":1522675749000}
                        var videoCard=new CommonVideoCard(sampleData);
                        evt.target.appendChildWidget(sampleData);
                        evt.target.setWidgetLengths(620);
                    }
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...