Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 具有数据绑定的标准分幅_Json_Data Binding_Sapui5_Tiles - Fatal编程技术网

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" },

我是SAPUI5开发的新手,尝试在平铺容器中创建具有标准平铺的页面。我创建了一个data.json文件,其中包含以下信息:

{
  "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);
}