我正在尝试组合XMLView&标准的HTML。在xml视图中,我们可以使用press="onDoSomething"
属性& 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
答案 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上的示例。