我有一个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>

然后,在使用Button和window.open函数时,我尝试使用window.open事件处理程序:
<Button text="Open Website" press=".onPress" />{ // In the Controller
onPress: function () {
window.open("{oData>/Url}","_blank");
},
}但是Controller也无法处理远程数据的路径,从而导致相同的无效URL。
我还从URLHelper中读取并尝试了这个样本,但是我无法将"value“属性添加到Button中。
发布于 2021-04-03 20:35:34
UI5为此提供了sap/m/library.URLHelper。
<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})"
/>文档
sap.m.URLHelper.redirect如果需要进一步处理目标URL:
<Button text="Open Website" press=".openUrl(${myModel>/urlPart}, true)" />openUrl: function(urlPart, newTab) {
const url = urlPart/*...*/;
const { URLHelper } = sapMLib; // sapMLib required from "sap/m/library"
URLHelper.redirect(url, newTab);
},https://stackoverflow.com/questions/66935407
复制相似问题