Sapui5 MessagePopover片段中的动态链接未显示

Sapui5 MessagePopover片段中的动态链接未显示,sapui5,Sapui5,我一直在开发一个UI5应用程序,它使用一个模型来存储通知。我想在可以使用页脚触发的MessagePopover中显示这些通知 数据绑定工作得非常好。我可以看到所有属性都已设置并与模型内的数据相匹配。但是详细信息页面中的链接没有显示出来 当我使用未使用数据绑定的静态链接(即指向google.com的静态链接)时,会呈现该链接 你们中有谁遇到过同样的问题并有解决办法吗 这是我的密码: sap.ui.define([ “sap/ui/core/mvc/Controller” ],功能(基本控制器){

我一直在开发一个UI5应用程序,它使用一个模型来存储通知。我想在可以使用页脚触发的MessagePopover中显示这些通知

数据绑定工作得非常好。我可以看到所有属性都已设置并与模型内的数据相匹配。但是详细信息页面中的链接没有显示出来

当我使用未使用数据绑定的静态链接(即指向google.com的静态链接)时,会呈现该链接

你们中有谁遇到过同样的问题并有解决办法吗

这是我的密码:

sap.ui.define([
“sap/ui/core/mvc/Controller”
],功能(基本控制器){
返回BaseController.extend(“test.test”{
onShowNotificationPopover:函数(oEvent){
如果(!this._notificationPopover){
var oMessageTemplate=new sap.m.MessageItem({
类型:“{data>type}”,
标题:“{data>title}”,
副标题:{数据>副标题},
描述:“{data>description}”,
markupDescription:“{data>markupDescription}”,
组名:“{data>groupName}”
});
var oLink=新的sap.m.Link({
文本:“{data>link/text}”,
href:“{data>link/url}”,
目标:“_blank”
});
/*使用静态*/
//oLink=new sap.m.Link({文本:“谷歌”,href:“http://google.com,目标:“\u blank”})
OmessaGetTemplate.setLink(oLink);
var oPopover=new sap.m.messagepoover();
oPopover.bindAggregation(“项目”{
模板:OmessaGetTemplate,
路径:“数据>/notifications”
});
这。_notificationPopover=opopopover;
this.getView().addDependent(this.\u notificationPopover);
}
这是._notificationPopover.toggle(oEvent.getSource());
}
});
});
该视图包含以下内容:


还有index.html

<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>

    <script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
            id="sap-ui-bootstrap"
            data-sap-ui-libs="sap.m, sap.f"
            data-sap-ui-theme="sap_belize"
            data-sap-ui-bindingSyntax="complex"
            data-sap-ui-resourceroots='{ 
                "test": "."
            }'
            >
    </script>
    <script>
        sap.ui.getCore().attachInit(function() {
            var oModel = new sap.ui.model.json.JSONModel();
            oModel.setData({
                notifications: [{
                    type: "Error",
                    title: "Title1",
                    subtitle: "Subtitle",
                    description: "This is a description and below you should see a link",
                    markupDescription: false,
                    groupName: "notification",
                    link: {
                        text: "Click here",
                        url: "http://www.google.com"
                    }
                }]
            });
            var oView = sap.ui.xmlview("test.Test");
            oView.setModel(oModel, "data");
            oView.placeAt("content");
        });
    </script>
</head>
<body class="sapUiBody" role="application">
    <div id="content"></div>
</body>
</html>

sap.ui.getCore().attachInit(函数()){
var oModel=new sap.ui.model.json.JSONModel();
oModel.setData({
通知:[{
键入:“错误”,
标题:“标题1”,
副标题:“副标题”,
描述:“这是一个描述,下面你应该看到一个链接”,
markupDescription:false,
组名:“通知”,
链接:{
文字:“点击这里”,
url:“http://www.google.com"
}
}]
});
var oView=sap.ui.xmlview(“test.test”);
oView.setModel(oModel,“数据”);
oView.placeAt(“内容”);
});


我找到了解决问题的方法:MessagePopover事件

控制器内的事件处理程序:

onNotificationItemSelect: function(oEvent){
    var oItem = oEvent.getParameter("item"), oBindingContext = oItem.getBindingContext("data");
    var oData = oBindingContext.getModel().getProperty(oBindingContext.getPath());
    oItem.getLink().setText(oData.link.text);
    oItem.getLink().setHref(oData.link.url);
}
您必须注册它:

var oPopover = new sap.m.MessagePopover({
    itemSelect: this.onNotificationItemSelect
});

其他信息

当您使用显示popover的内容时

console.log(oPopover.getItems()[0].getLink())
将显示正确的属性

但是当您搜索DOM时,您可以看到链接被复制,并且不包含所需的绑定