2017-04-18 19 views
0

這段代碼是從Controller.Here我試圖讓列表中的所有項目(XML視圖)SAPUI5:無法訪問從Array項目(或要素)(從列表獲得)

onAfterRendering: function(oEvent) { 

      var items = this.getView().byId("list").getItems("listitems"); 

      console.dir(items); 




     } 

此代碼是從那裏的xmlView列表填充用的OData

<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> 

下面是導致陣列我收到的控制檯。我無法使用索引訪問此數組的元素

是否有任何其他方式從列表中獲取所有項目? 或 以其他方式訪問數組元素?

Click here to see resulted array

回答

0

在你的情況,你可以得到的數據爲:

console.log(items[0].mProperties); 

或:

var aData = (oList.getItems()).map(function(oItem){   
    console.log(oItem.getBindingContext().getObject()); 
}); 

的getBindingContext方法需要一個型號名稱。否則它將使用默認模型。如果使用帶有名稱的OData模型,則應將其傳遞給getBindingContext方法調用。

Here是簡單的演示,按下按鈕。

+0

哎@Jaro,感謝您的答覆,當我想你的第一個解決方案 **的console.log(項目[0] .mProperties); ** 它給了我下面的錯誤 _Uncaught(在承諾)類型錯誤:無法讀取undefined_ 的屬性'mProperties',第二個解決方案也不工作 – Macnab

+0

請更改此onAfterRendering:function(oEvent){onInit:function(oEvent){並將我的行放入此函數。 – Jaro