簡體   English   中英

如何將字符串從SAPUI5中的html視圖傳遞到控制器方法?

[英]How to pass a string to controller method from html view in SAPUI5?

我需要使用來自控制器的動態路線參數來構建導航。

//user.controller.js

(function () {
  sap.ui.controller("app.User", {
    getNavUrl: function (tab) {
      return '#/users/+ this.userId + '/' + tab;
    }
  });
}());

//user.view.html
<div data-sap-ui-type="ui5strap.Nav" data-selection-mode="Single">
  <div data-sap-ui-type="ui5strap.ListNavItem" 
       data-selected="true"
       data-text="{i18n>Grants}" 
       data-href={getNavUrl('grants')}> <!-- cant make this to work! -->
  </div>

  <div data-sap-ui-type="ui5strap.ListNavItem"
       data-text="{i18n>Opportunities}" 
       data-href={getNavUrl('opportunities')}> <!-- cant make this to work! -->
  </div>

</div>

因此,我將在任何MVC中執行此操作的方式-是通過在視圖內將字符串傳遞給控制器​​方法,但是我似乎找不到在sapui5中從視圖調用控制器方法的方法。

您可以調用如下方法:

sap.ui.getCore().byId("idofviewhere").oController.onBeforeRendering();

在您的情況下:

sap.ui.getCore().byId("idofviewhere").oController.getNavUrl(tab);

您是否嘗試過使用SAPUI5的內部函數處理程序? 這是按下按鈕的示例:

//user.controller.js

 (function () {
      sap.ui.controller("app.User", {


        navigateFoo: function (oEvent) {
             alert("you are now navigating. If you want to dynamically alter your destination, 
                    consider putting custom data into your UI object, and using 'oEvent.getSource()'
                    in the controller to get access to your UI object, and all custom data inside");
            }
      });
    }());

//user.view.html

<div data-sap-ui-type="sap.ui.commons.Button" id="myButton" data-text="Navigate" data-press="navigateFoo"></div>

對於您的情況,您可以檢查listnav項目是否具有“ data-press”或可以使用的等效按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM