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