此代码来自Controller.Here我正在尝试从列表中获取所有项目(XML视图)
onAfterRendering: function(oEvent) {
var items = this.getView().byId("list").getItems("listitems");
console.dir(items);
}
此代码来自XMLview,其中使用Odata填充List
<List id="list"
items="{ path: '/MYPROJECTSSet', sorter: { path: 'MpId', descending: false },groupHeaderFactory: '.createGroupHeader', parameters: { operationMode: 'Client' } }"
busyIndicatorDelay="{masterView>/delay}" noDataText="{masterView>/noDataText}"
mode="{= ${device>/system/phone} ? 'None' : 'SingleSelectMaster'}" growing="true" growingScrollToLoad="true"
updateFinished="onUpdateFinished" selectionChange="onSelectionChange" >
<infoToolbar>
<Toolbar active="true" id="filterBar" visible="{masterView>/isFilterBarVisible}" press="onOpenViewSettings">
<Title id="filterBarLabel" text="{masterView>/filterBarLabel}"/>
</Toolbar>
</infoToolbar>
<items>
<ObjectListItem id="listitems" type="{= ${device>/system/phone} ? 'Active' : 'Inactive'}" press="onSelectionChange" title="{MpId}" intro="{Description}">
<firstStatus>
<ObjectStatus id="icon" icon="{ parts: [ {path: 'ActualData'}, {path: 'PlannedData'} ], formatter : '.formatter.getIcon'}"/>
</firstStatus>
</ObjectListItem>
</items>
</List>
以下是我在控制台中获得的数据。我无法使用索引
访问此数组的元素有没有其他方法可以从列表中获取所有项目? 要么 访问数组元素的其他方法?
答案 0 :(得分:0)
在您的情况下,您可以获取数据:
console.log(items[0].mProperties);
或:
var aData = (oList.getItems()).map(function(oItem){
console.log(oItem.getBindingContext().getObject());
});
getBindingContext方法需要一个模型名称。否则它将使用默认模型。如果使用带名称的OData模型,则应将其传递给getBindingContext方法调用。
Here是一个简单的演示,按下按钮。