Json 具有数据绑定的标准分幅
我是SAPUI5开发的新手,尝试在平铺容器中创建具有标准平铺的页面。我创建了一个data.json文件,其中包含以下信息:Json 具有数据绑定的标准分幅,json,data-binding,sapui5,tiles,Json,Data Binding,Sapui5,Tiles,我是SAPUI5开发的新手,尝试在平铺容器中创建具有标准平铺的页面。我创建了一个data.json文件,其中包含以下信息: { "TileCollection" : [ { "icon" : "edit", "type" : "Monitor", "press": "onEditClick", "title" : "Global MasterData Characteristics Maintenance Tool" },
{
"TileCollection" : [
{
"icon" : "edit",
"type" : "Monitor",
"press": "onEditClick",
"title" : "Global MasterData Characteristics Maintenance Tool"
},
{
"icon" : "activity-assigned-to-goal",
"type" : "Monitor",
"press": "onAssignClick",
"title" : "Global MasterData Characteristics Assignment Tool"
},
{
"icon" : "map",
"type" : "Monitor",
"press": "onMappingClick",
"title" : "Global MasterData Characteristics Mapping Tool"
}
]
}
在我的xml视图中,我使用下面的代码,当我将下面的动态条目从{press}替换为例如onEditClick时,事件会工作,但对于动态内容,单击互动程序时不会发生任何事情。我希望任何人都能在正确的方向上提供帮助
<TileContainer id="container" tileDelete="handleTileDelete" tiles="{/TileCollection}">
<StandardTile
icon = "sap-icon://{icon}"
type = "Monitor"
press = "{press}"
title = "{title}" />
</TileContainer>
可以肯定的是,图标和标题在运行时被正确加载,因此JSON文件被加载和使用,只有press属性似乎没有被应用
亲切问候,,
尼科·范德林登嗨,尼科·范德林登 您需要更改新闻发布会的绑定 代码应该是这样的:
<TileContainer id="container" tileDelete="handleTileDelete" tiles="{/TileCollection}">
<StandardTile
icon = "sap-icon://{icon}"
type = "Monitor"
press = "FunctionPress"
title = "{title}" />
</TileContainer>
希望这有帮助。我终于解决了它:-)事实上,你似乎无法约束新闻事件本身。因此,我现在所做的是在json文件中创建一个参数id磁贴,该磁贴具有作为应用程序一部分的视图的值。因此,JSON文件如下所示:
{
"TileCollection" : [
{
"id-tile": "maintenance",
"icon" : "edit",
"type" : "Monitor",
"info" : "Central",
"title" : "Global MDM"
},
{
"id-tile": "assignment",
"icon" : "activity-assigned-to-goal",
"type" : "Monitor",
"info" : "Local",
"title" : "Product and Customer Mapping "
}
}
然后在视图中,我使用标准瓷砖,如下所示:
> <StandardTile
> icon="sap-icon://{tiles>icon}"
> type="{tiles>type}"
> number="{tiles>number}"
> numberUnit="{tiles>numberUnit}"
> press="handleTilepress"
> title="{tiles>title}"
> info="{tiles>info}"
> infoState="{tiles>infoState}" />
谢谢大家的回复!我对SAPUI5开发非常陌生,我不知道这是否是最好的方法,但对我来说似乎很好:-)
问候,,
Nico很抱歉回复太晚,但感谢您的反应。如果我这样做,它确实有效,但是所有的瓷砖都会启动相同的方法。如果有一种方法可以检索所单击的互动程序的id或其他内容,那么哪种方法可以呢?有办法吗?
handleTilepress: function(oEvent) {
var selectedPage = oEvent.getSource().getBindingContext("tiles").getProperty("id-tile");
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo(selectedPage);
}