2016-03-30 9 views
-1

画像JSONモデルをトラバースする方法は? JSON配列の

enter image description here

Controller.js

item: function(evt) { 
    var list = sap.ui.getCore().byId('appListId'); 
    var sItem = list.getSelectedItem(); 

    var oBindingContext = sItem.getBindingContext('products'); 
    var sPath = oBindingContext.sPath; 

    console.log(sPath); // get path /collection/0/App/0 

    var context = sap.ui.getCore().byId("appListId").getModel('products') 
    .getContext(sPath); 

    var start = sPath.lastIndexOf("/") + 1; 
    var appIndex = sPath.substring(start, sPath.length); 

    this.router.navTo("selectedAppRecord", { 
     catIndex : this.subCatIndex, 
     appIndex : appIndex 
    }); 
} 

パス:

get this path /collection/0/App/0 

私は、JSON配列を持っている:

{ 
    "collection": [{ 
     "model": "08 Report Fraud", 
     "App": [{ 
      "App": "COUNCIL001", 
      "description": "Benefit Fraud", 
      "module": "08 Report Fraud", 
      "iConClass": "icon-devil", 
      "UserSpecific": "Yes" 
     }] 
    }] 
} 

ようやく私の目標は、制御側では、このユーザ固有のキーを取得する方法です。

+0

達成しようとしていることは本当に明確ではありません。問題の詳細を追加してください。 – hirse

+0

@hirse上記のようにパスを取得し、JSONにあるUserSpecificのKeyを使用するパスを使用します。 –

答えて

1

BindingContextのgetProperty関数を使用すると、相対プロパティを取得できます。あなたのハンドラ関数で

var oItem = sap.ui.getCore().byId('appListId').getSelectedItem(); 
oItem.getBindingContext('products').getProperty('UserSpecific'); 

私はイベントから現在の項目を取得することをお勧めします:イベントの種類に応じて

oEvent.getSource() || oEvent.getSource().getSelectedItem() 

(ListItemの#選択するか、またはリスト#のSelectionChange) 。

+0

コードを作業中... !!! –

関連する問題