如何从SAPUI5中的html视图将字符串传递给控制器​​方法?

时间:2015-05-20 15:32:02

标签: javascript 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中的视图调用控制器方法的方法

2 个答案:

答案 0 :(得分:0)

您可以调用这样的方法:

.attr("x1", 0).attr("y1", 0)            
.attr("x2", 100).attr("y2", 55)  

在你的情况下:

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

答案 1 :(得分:0)

您是否尝试过使用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项目是否具有“数据按下”或您可以使用的等效项。