所有数组元素均未分配给模型

All array elements are not assigned to model

我有来自我的 expressjs 的数组,如下所示。我正在将这个数组分配给我的前端框架 openui5 中的模型。但是只有数组的前 100 个元素,即 [0-99] 被加载到模型中,并且不考虑所有其他数组元素,即 [100-520],这是为什么以及如何确保所有数组元素都被加载到我的模型?

下面是用于加载模型的代码。

 onAfterRendering: function () {
        var that = this;
        var businessQuery= $.ajax({
            type: "GET",
            url: '/getAllBusinesses',          
            dataType: "json"
        });
        $.when(businessQuery).done(function (oBusinesses) {
            that.businessModel= new sap.ui.model.json.JSONModel();
            that.businessModel.setData(oBusinesses[0].franchisees); //fracnchisees is array of 520 elements
            that.getView().setModel(that.businessModel, 'businessModel');

        });
        $.when(businessQuery).fail(function (jqXHR, textStatus, errorThrown) {
            console.log(errorThrown);
        });    
    },

我的模型绑定到 table 的视图如下所示,

 var oBusinessListColumn = new sap.m.ColumnListItem({
            cells: [                
                new sap.m.Button({
                    icon: '{businessModel>picture/data/url}',
                    text: '{businessModel>name}',
                    type: sap.m.ButtonType.Transparent,
                    press: [oController.showBusiness, oController]
                }),               
                new sap.m.Button({
                    icon: 'img/Revember32_32.png',
                    text: {
                        path: 'businessModel>presentInRevember',
                        formatter: jQuery.proxy(oController.formatPresentInRevember, oController)
                    },
                    type: sap.m.ButtonType.Emphasized,
                    press: [oController.invitePressed, oController]
                })
            ]
        });

        var oBusinessTable = new sap.m.Table('js-myBusiness-oBusinessTable', {
            fixedLayout: false,
            columns: [
                new sap.m.Column({

                    header: new sap.m.Label({text: 'Business'})
                }),
                new sap.m.Column({

                    header: new sap.m.Label({text: 'Status'})
                })
            ],
            layoutData: new sap.ui.layout.GridData({span: "L12 M12 S12"})
        }).addStyleClass('css-alignHorizontalCenter css-sTopBottomMargin card');
        oBusinessTable.bindAggregation('items', 'businessModel>/', oBusinessListColumn);

当呈现 table 时,我只看到模型的前 100 个元素,而不是完整的 520 个元素。

此致, 吃蛋

Chrome 的 console.log() 显示按 100 个项目分组的数组。在 length 属性 您可以看到,该数组包含所有 520 个项目。

哇,成功了。必须设置属性 growing: true, growingScrollToLoad: true, on Table,这些属性定义在由 Table 扩展的 ListBase 上。

您可以使用 setSizeLimit:

将大小限制增加到超过默认值 100
oModel.setSizeLimit(999999);