首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按钮压力机上的SAPUI5打开链接

按钮压力机上的SAPUI5打开链接
EN

Stack Overflow用户
提问于 2021-04-03 20:03:47
回答 1查看 4.4K关注 0票数 3

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

我从一个OData调用中获得特定链接的值,普通的<Link>控件在远程数据路径中运行良好。

代码语言:javascript
运行
复制
<Link href="{oData>/Url}" target="_blank" text="Click me" />

尝试了几种使用<Button>打开网站的方法,但没有一种是为我工作的。

我试着在里面放了个按钮。

代码语言:javascript
运行
复制
<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链接,但它无法处理远程数据的路径:

代码语言:javascript
运行
复制
<html:a href="{oData>/Url}" target="_blank"><Button text="Open Website"/></html:a>

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

代码语言:javascript
运行
复制
<Button text="Open Website" press=".onPress" />
代码语言:javascript
运行
复制
{ // In the Controller
  onPress: function () {
    window.open("{oData>/Url}","_blank");
  },
}

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

我还从URLHelper中读取并尝试了这个样本,但是我无法将"value“属性添加到Button中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-03 20:35:34

UI5为此提供了sap/m/library.URLHelper

代码语言:javascript
运行
复制
<Button xmlns="sap.m"
  xmlns:core="sap.ui.core"
  core:require="{ sapMLib: 'sap/m/library' }"
  text="Open Website"
  press="sapMLib.URLHelper.redirect(${myModel>/Url}, ${myViewModel>/newTab})"
/>

文档

如果需要进一步处理目标URL:

代码语言:javascript
运行
复制
<Button text="Open Website" press=".openUrl(${myModel>/urlPart}, true)" />
代码语言:javascript
运行
复制
openUrl: function(urlPart, newTab) {
  const url = urlPart/*...*/;
  const { URLHelper } = sapMLib; // sapMLib required from "sap/m/library"
  URLHelper.redirect(url, newTab);
},
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66935407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档