图片
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
});
}
JSON数组的路径:
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"
}]
}]
}
最后我的目标是如何在控件端获取此UserSpecific密钥。
答案 0 :(得分:1)
您可以使用BindingContext的getProperty
函数来获取相对属性。
var oItem = sap.ui.getCore().byId('appListId').getSelectedItem();
oItem.getBindingContext('products').getProperty('UserSpecific');
在你的处理程序函数中,我建议从事件中获取当前项目:
oEvent.getSource() || oEvent.getSource().getSelectedItem()
取决于事件的类型(ListItem #select或List#selectionChange)。