【问题标题】:Is there any way to dynamically add data into a gird?有没有办法将数据动态添加到网格中?
【发布时间】:2018-10-09 19:56:44
【问题描述】:

我有一个带有 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 方法并且它有效。 任何帮助将不胜感激。

【问题讨论】:

    标签: bbc-tal


    【解决方案1】:

    在添加新的子小部件后设置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);
                        }
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2021-09-11
      • 2013-11-20
      • 1970-01-01
      • 2016-04-21
      • 2014-04-29
      相关资源
      最近更新 更多