Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 并非所有数组元素都指定给模型_Javascript_Arrays_Express_Sapui5 - Fatal编程技术网

Javascript 并非所有数组元素都指定给模型

Javascript 并非所有数组元素都指定给模型,javascript,arrays,express,sapui5,Javascript,Arrays,Express,Sapui5,我的expressjs中有一个数组,如下所示。我将这个数组分配给前端框架openui5中的模型。但只有数组的前100个元素(即[0-99])加载到模型中,而所有其他数组元素(即[100-520])都不被考虑,这是为什么?我如何确保所有数组元素都加载到我的模型中 下面是用于加载模型的代码 onAfterRendering: function () { var that = this; var businessQuery= $.ajax({

我的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);
        });    
    },
我将模型绑定到表的视图如下所示

 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);
当呈现表格时,我只看到模型的前100个元素,而没有看到完整的520个元素。

问候,,
Chidan

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

phew,开始工作了。必须在由表扩展的ListBase上定义的表上设置属性growing:true、growingScrollToLoad:true

您可以使用以下方法将大小限制增加到默认值100之外:


我很困惑。您显示了一个包含520个条目的数组的屏幕截图,这不是您正在使用的数组吗?或者,你是说openui5只是从数组中读取前100个元素(这表明node.js和express与此无关)可能是OPEI5只是读取数组的前100个元素,但我不确定;当我将数据分配给如下模型-->businessModel=new sap.ui.model.json.JSONModel()时;businessModel.setData(对象[0]。特许经营商);我不确定它是否与openui5或javascript相关。为什么调试器中的显示会将数组拆分100秒?这正是chrome显示大型数组的方式。请注意,您不需要
$。当
businessQuery.done(fn).fail(fn)
也可以。是的,但是为什么我的模型没有加载所有520个元素,而只加载前100个?请共享用于创建模型的代码。你在模型上调用过
setzizelimit()
吗?@Martin Lantzsch,我刚刚更新了代码,没有,我没有调用setzizelimit()在模型上,您如何注意到并非所有元素都加载到模型中?在openui5中,代码没有硬编码的限制或视图缓冲区(除非您使用的是oData)。我不知道是谁记下了我的答案,但记下的人并不真正理解这个问题,也没有把他的概念弄错,:(愤怒)
oModel.setSizeLimit(999999);