如何在xml视图上触发html锚标记的click事件SAP UI5

时间:2016-06-10 12:42:18

标签: html5 sapui5 sap-fiori

我正在尝试组合XMLView&amp;标准的HTML。在xml视图中,我们可以使用press="onDoSomething"属性&amp; onDoSomething : function(){} app.controller.js上的<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="banalyzer.controller.App" xmlns:html="http://www.w3.org/1999/xhtml" displayBlock="true"> <App id="BA_APP"> <pages> <HBox width="100%" height="100%" id="header_container"> <items> <Image class="logo" src="../images/logo_new.png"/> <Image class="header" src="../images/header-bg.png"/> </items> <html:ul class="tab"> <html:li> <html:a href="#" onclick="onBud()" class="tablinks active">Budget Analyzer</html:a> </html:li> <html:li> <html:a href="#" onclick="spend()" class="tablinks">Spend Analyzer</html:a> </html:li> </html:ul> </HBox> </pages> </App> </mvc:View> 触发点击事件。但是如何在html上触发它。这是我的代码

ROUND(B1/SUM(B$1:B$9);1)*10

1 个答案:

答案 0 :(得分:1)

在呈现View时,XMLView将html元素复制到页面中。由于它们不是UI5控件而是html dom元素,因此不会处理事件和属性。因此,onclick事件中的代码将不会被复制到输出页面。

当用户点击这样的链接时,代码将在全局窗口上下文中执行。没有简单的方法可以找到已经将链接及其Controller实例呈现在您想要调用方法的UI5 View实例。

将html事件附加到控制器方法的最简单方法是给html元素一个id并绑定控制器onAfterRendering方法中的事件:

  onAfterRendering:function(){
    jQuery("#"+this.createId("link1")).on("click",this.onLinkPressed.bind(this));
    jQuery("#"+this.createId("link2")).on("click",this.onLinkPressed.bind(this));
  },

JSBin上的示例。