根据使用稳定ID文章,建议对UI5元素使用稳定ID。同时,我回顾了sap.tnt.NavigationListItem
实现的多个示例,并注意到在sap.tnt.NavigationListItem
的情况下,不使用id
,而是使用key
,例如:
<tnt:NavigationListItem text="{name}" icon="{icon}" key="{controller}" select="onItemSelect" />
我还尝试将id
分配给tnt:NavigationListItem
,然后通过标准的oEvent.getProperty("%MY_ID%")
方法从oEvent
-object访问它,但没有成功。
我的问题:
id
,以及何时key
对XML-模板中的UI5项使用?sap.tnt.NavigationListItem
情况下,key
比id
更受欢迎,还是我错过了一些重要的东西?发布于 2021-07-07 08:44:54
根据你的评论,我举了一个小例子。
key
。如果需要标识UI元素,例如测试中的按钮,或者添加用户协助帮助,请使用用户协助帮助。
sap.ui.controller("view1.initial", {
onInit: function(oEvent) {
this.getView().setModel(
new sap.ui.model.json.JSONModel({
items: [{
title : "1",
subItems: [
{ keyInData: "1", title : "1-a" },
{ keyInData: "2", title : "1-b" },
{ keyInData: "3", title : "1-c" },
{ keyInData: "4", title : "1-d" }
]
}],
}));
},
onItemSelect: function(oEvent) {
const item = oEvent.getParameter("item")
console.log("key over key binding: " + item.getKey() )
console.log("key over databinding: " + item.getBindingContext().getObject().keyInData )
}
});
sap.ui.xmlview("main", { viewContent: jQuery("#view1").html() } ).placeAt("uiArea");
<script id="sap-ui-bootstrap"
src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-xx-bindingSyntax="complex"
data-sap-ui-compatVersion="edge"
data-sap-ui-libs="sap.m"></script>
<div id="uiArea"></div>
<script id="view1" type="ui5/xmlview">
<mvc:View controllerName="view1.initial" xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns:tnt="sap.tnt">
<tnt:NavigationList
id="navigationList"
width="320px"
selectedKey="subItem3" items="{/items}">
<tnt:NavigationListItem text="{title}" items="{ path:'subItems', templateShareable:false}" icon="sap-icon://employee" >
<tnt:NavigationListItem text="{title} - {keyInData}" key="{keyInData}" select="onItemSelect" />
</tnt:NavigationListItem>
</tnt:NavigationList>
</mvc:View>
</script>
https://stackoverflow.com/questions/68273390
复制相似问题