没有额外的JS代码链接到路由

时间:2016-03-09 06:00:30

标签: sapui5

我是OpenUI5的初学者,并编写了如下菜单:

查看:

<NavigationList id="navigationList" width="12rem">
  <NavigationListItem text="People" icon="sap-icon://card" select="goToRoute"></NavigationListItem>
</NavigationList>

控制器:

goToRoute: function() {
    this.getRouter().navTo("peoplelist");
}

这很有效,但这很糟糕,因为我有几个菜单项和每个JS事件。

我希望下面有这样的内容,没有任何JS背后,但在文档和示例中找不到任何内容。

查看:

<NavigationList id="navigationList" width="12rem">
  <NavigationListItem text="People" icon="sap-icon://card" linkToRoute="peoplelist"></NavigationListItem>
</NavigationList>

有谁知道?

1 个答案:

答案 0 :(得分:3)

您可以构建一个通用事件处理程序,该处理程序从相应的项目派生目标路径。为此,您可以使用自定义数据,您可以以声明方式添加到控件中。为此,请在打开的View标记中添加以下行:

xmlns:custom="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"

采用您的导航列表:

<NavigationList id="navigationList" width="12rem">
      <NavigationListItem text="People" icon="sap-icon://card" select="onItemSelect" custom:route="peopleList"/>
</NavigationList>

你的控制器:

onItemSelect : function(event) {
   var item = event.getSource();
   var route = item.data("route");
   this.getRouter().navTo(route);
}

Here您可以找到更多详细信息。