繁体   English   中英

SAPUI5在按钮按下时打开链接

[英]SAPUI5 Open link on Button press

我有一个 SAPUI5 应用程序,如果我单击一个按钮,我想打开一个链接。

我从 OData 调用中获取特定链接的值,并且正常的<Link>控件与远程数据路径正常工作。

<Link href="{oData>/Url}" target="_blank" text="Click me" />

尝试了几种用<Button>打开网站的方法,但没有一个对我有用。

我试图在里面放一个按钮。

<Link target="_blank" href="{oData>/Url}" text="Click me">
  <Button text="Open Website"/> <!-- Error: Cannot add direct child without default aggregation defined for control sap.m.Link -->
</Link>

但我收到了上述错误。

尝试使用 HTML 链接,但它无法处理远程数据的路径:

<html:a href="{oData>/Url}" target="_blank"><Button text="Open Website"/></html:a>

在 SAP Web IDE 中使用无效 URL 打开的 SAPUI5 应用程序

然后我尝试在使用 Button 和window.open function 时使用onPress事件处理程序:

<Button text="Open Website" press=".onPress" />
{ // In the Controller
  onPress: function () {
    window.open("{oData>/Url}","_blank");
  },
}

但是Controller也无法处理远程数据的路径导致同样无效的URL。

我还阅读了URLHelper并尝试了这个示例,但我无法将“值”属性添加到按钮。

<Button text="Open Website" press=".openUrl(${oData>/Url}, true)" />
{ // In the Controller
  openUrl: function(url, newTab) {
    // Require the URLHelper and open the URL in a new window or tab (same as _blank):
    sap.ui.require([ "sap/m/library" ], ({URLHelper}) => URLHelper.redirect(url, newTab));
  },
} 

有关更多信息,请参阅:


或者,无需 controller, 直接在 XML 中要求模块(自 UI5 1.69 起):

<Button xmlns="sap.m"
  xmlns:core="sap.ui.core"
  core:require="{ sapMLib: 'sap/m/library' }" 
  text="Open Website"
  press="sapMLib.URLHelper.redirect(${oData>/Url}, true)"
/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM