admin管理员组文章数量:1399919
I have a SAPUI5 application and want to open a link if I click on a button.
I get the value of the specific link from an OData call and a normal <Link>
control is working fine with the remote data path.
<Link href="{oData>/Url}" target="_blank" text="Click me" />
Tried several ways to open the website with a <Button>
instead, but none of them were working for me.
I tried to put a Button inside of it.
<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>
But I'm getting the above error.
Tried using an HTML link, but it can't deal with the path of the remote data:
<html:a href="{oData>/Url}" target="_blank"><Button text="Open Website"/></html:a>
Then I tried to use the onPress
event handler when using a Button and the window.open
function:
<Button text="Open Website" press=".onPress" />
{ // In the Controller
onPress: function () {
window.open("{oData>/Url}","_blank");
},
}
But the Controller also can't deal with the path of the remote data resulting in the same invalid URL.
I also read from URLHelper
and tried this sample, but I'm unable to add the "value" attribute to the Button.
I have a SAPUI5 application and want to open a link if I click on a button.
I get the value of the specific link from an OData call and a normal <Link>
control is working fine with the remote data path.
<Link href="{oData>/Url}" target="_blank" text="Click me" />
Tried several ways to open the website with a <Button>
instead, but none of them were working for me.
I tried to put a Button inside of it.
<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>
But I'm getting the above error.
Tried using an HTML link, but it can't deal with the path of the remote data:
<html:a href="{oData>/Url}" target="_blank"><Button text="Open Website"/></html:a>
Then I tried to use the onPress
event handler when using a Button and the window.open
function:
<Button text="Open Website" press=".onPress" />
{ // In the Controller
onPress: function () {
window.open("{oData>/Url}","_blank");
},
}
But the Controller also can't deal with the path of the remote data resulting in the same invalid URL.
I also read from URLHelper
and tried this sample, but I'm unable to add the "value" attribute to the Button.
1 Answer
Reset to default 5UI5 provides sap/m/library.URLHelper
for this.
<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})"
/>
Documentation
- API reference:
sap.m.URLHelper.redirect
- Section "Passing Parameters" from the topic "Handling Events in XML Views" (since UI5 1.56)
- Topic "Require Modules in XML View and Fragment" (since UI5 1.69)
If the target URL needs to be further processed:
<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);
},
本文标签: javascriptSAPUI5 Open link on Button pressStack Overflow
版权声明:本文标题:javascript - SAPUI5 Open link on Button press - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744243772a2596911.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论