无法从一个视图导航到另一个视图

时间:2018-06-09 21:38:21

标签: sapui5

我试图在UI5应用程序中从一个视图导航到另一个视图,但我无法这样做。我最近创建了一个现有视图 A 的副本,并将其重命名为 B 。然后我复制了 A 的控制器并将其重命名为 B 的控制器。我现在想要从 A 导航到 B 视图。我已在routes中声明了 B 视图,就像 A (在必要时重命名)但我仍然无法导航。当我点击视图 A 中的按钮时,我想显示 B 。但没有任何反应。控制台也没有显示错误。可能是什么问题?

A 的控制器中:

buttonClick: function(event) {
  vc.getOwnerComponent().getRouter().navTo("stockDetails", {
    "companyId": vc.companyId,
    "stockroomId": vc.stockroomId,
    "order": vc.orderNo
  }, false);
},

在manifest.json中:

  • routes下:

    {
      "name": "stockDetails",
      "pattern": "company/{companyId}/stockrooms/{stockroomId}/order/{order}",
      "titleTarget": "",
      "greedy": false,
      "target": [
        "menu",
        "stockDetails"
      ]
    }
    
  • targets下:

    "stockDetails": {
      "viewType": "XML",
      "transition": "slide",
      "clearAggregation": true,
      "viewName": "stockroom.stockDetails", //stockDetails View B
      "viewLevel": 2,
      "controlAggregation": "pages",
      "controlId": "app"
    }
    

2 个答案:

答案 0 :(得分:0)

不确定您是否使用正确的事件进行按钮点击。 你可以尝试使用"按"事件,而不是"按钮点击"事件

在此之前,尝试在buttonClick事件处理程序中放置一个" console.log(" Event Firing OK"),并检查控制台是否有消息。如果没有,您知道事件甚至没有被触发,因此,您的导航代码永远不会被执行。

REFERNCE:https://sapui5.hana.ondemand.com/#/api/sap.m.Button/events/press

最诚挚的问候, Gopal Nair。

答案 1 :(得分:0)

以下是一些可能的原因..

<App>

的多个目标

您似乎正在尝试同时将多个目标("menu""stockDetails")分配到同一个聚合("pages")。除非涉及使用主 - 细节布局或parent目标,否则请尝试仅为正确的聚合分配正确的目标。如果是sap.m.App

{
  "name": "stockDetails",
  "pattern": "...",
  "target": "stockDetails"
}

否则,您将遇到意外行为,具体取决于routerClass模块的实现。

相同的模式

虽然路由name可能不同("stockDetails"),但您可能在从源路由进行复制粘贴时保留了路由pattern A )。

如果确实如此,您还需要为路线pattern提供明确的"stockDetails" 。当存在相同的模式时,第一条路线总是被考虑在其他路线上。*

  

路线定义中的路线序列很重要。只要模式匹配,就会忽略以下模式。 [src]

Here,您可以尝试定义两个相同的模式并相应地设置哈希值。您将看到只有第一个模式匹配,在您的情况下,视图 A

*除非属性greedy在其他一条路线中有效。