代码之家  ›  专栏  ›  技术社区  ›  THI

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

  •  1
  • THI  · 技术社区  · 7 年前

    我正试图在UI5应用程序中从一个视图导航到另一个视图,但我不能这样做。我最近创建了一个现有视图的副本 并将其重命名为 . 然后我复制了控制器 并将其更名为 . 我现在想从 查看。我已经宣布了这个观点 在里面 routes 就像 (必要时重命名)但我仍然无法导航。当我单击视图中的按钮时 ,我想展示 . 但什么也没发生。控制台也没有显示错误。问题可能是什么?

    在控制器中 :

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

    在manifest.json中:

    • 路线 :

      {
        "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 回复  |  直到 7 年前
        1
  •  0
  •   Boghyon Hoffmann    7 年前

    <App>

    "menu" "stockDetails" "pages" parent sap.m. App

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

    routerClass

    name pattern 从源路由复制粘贴时( )

    如果是真的,你需要 提供独特的 图案 对于路线 “库存明细” 也。当存在相同的模式时,总是考虑到第一个路径胜过其他路径。*

    路由定义中的路由顺序非常重要。一旦匹配了一个模式,就会忽略以下模式。 [src]

    Here 您可以尝试定义两个相同的模式并相应地设置哈希。您将看到,只有第一个模式是匹配的,在您的例子中,这是视图 .


    *除非财产 greedy 在其他路由之一中处于活动状态。

        2
  •  0
  •   Gopal Nair    7 年前

    不确定是否使用了按钮单击的正确事件。 你能尝试使用“按下”事件而不是“按钮点击”事件吗?

    在此之前,尝试将“console.log”(“event firing ok”)放在buttonclick事件处理程序中,并检查控制台是否出现消息。如果没有,您知道事件甚至不会被激发,因此,您的导航代码永远不会被执行。

    推荐人: https://sapui5.hana.ondemand.com/#/api/sap.m.Button/events/press

    顺祝商祺! 戈帕尔·奈尔。