0

我有一个带有 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)
                    }
                }
            }

这就是我的事件监听器代码。我也检查了 dom,如果我在附加方法之后放置了一个断点,那么我可以在 dom 中看到数据,之后似乎特定轮播被卡住了,我无法导航到轮播中的其他项目。我只是尝试了removeWidget一种方法,它有效。任何帮助将不胜感激。

4

1 回答 1

0

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);
                    }
                }
            }
于 2018-10-09T11:56:44.860 回答