UI5:母版页和动态XML视图加载

时间:2017-12-09 03:29:16

标签: xml routing sapui5 master-pages

我对我的应用程序的设计方法有疑问。我们将有一个母版页,它将使整个应用程序在左侧和顶部具有相同的菜单栏。根据左侧选定的菜单,中间区域将是动态的。下面是它的样子; enter image description here

红色区域将根据左侧的选择动态显示。黄色区域将始终固定。 我想的其中一个替代品,我将有一个main.view.xml,它将包含左侧面板和顶部栏,并将中间区域留空,并带有一个空的滚动条容器。根据菜单选择,系统将动态加载相应的XML视图到滚动条控件。 在这里,我有一个非常重要的观点,我的网址应该是动态的。我的意思是,用户可以将此URL发送给其他用户,一旦打开,他们应该看到完全相同的输出。我打算使用不同URL的ROUTING,但是指向主页面MAIN.VIEW.XML; 下面是一个示例路由结构;

  routes:
      {"pattern": "MasterData/material/{ID}",
        "name": "MasterData",
        "target": "MasterData"
      },
      {"pattern": "Report/Cost/{REPID}",
        "name": "CostReport",
        "target": "CostReport"
      },
      {"pattern": "UserPanel",
        "name": "UserPanel",
        "target": "UserPanel"
      },

      "targets": {
        "MasterData": {
          "viewName": "APP/MAIN",
          "viewLevel": 1
        },
        "CostReport": {
          "viewName": "APP/MAIN",
          "viewLevel": 2
        },
        "UserPanel": {
          "viewName": "APP/MAIN",
          "viewLevel": 3
        },

在这种情况下,根据我的路由模式,我将加载相应的XML视图。所以main.view将是我的主页面,它有主菜单栏和顶栏。将根据URL动态加载XML视图。这是一个好方法吗?

第二种选择是; 黄色突出显示的区域将是片段,我将在所有XML视图中包含在所有页面中具有相同的输出。在这种情况下,所有XML视图中都会有一个小的复制粘贴操作。由于它们是片段,一旦我更改片段,所有页面也将得到更改。这里的优点是,路由将针对每个XML视图而不是main.view.xml

1 个答案:

答案 0 :(得分:1)

通过Route-Config,属性“target”是一个数组。这意味着你可以传递多个目标,例如始终是目标“MasterData”。

  

我的意思是,用户可以将此网址发送给其他用户,一旦他们打开,   他们应该看到完全相同的输出。

所以这适用于您的请求。

另一种方法是在模式中使用“rest as string parameter”

  

作为字符串参数休息:“pattern”:“:all *:” - 这个模式会   定义一个可选的变量,将整个哈希作为字符串传递给   路由事件。它可用于定义一条捕获路线,例如: G。   以下哈希值匹配:foo,product / 5/3,   产品/ 5 /细节/ 3 / foo中。您也可以将它与其他组合   变量,但要确保带*的变量是最后一个

     

Route API Constructor

但是如果你想要多条路线匹配相同的模式,你的路线需要参数

贪婪:真实

我希望这有助于你