如何解决此问题:无法读取未定义的属性'indexOf'

2020-09-20 15:36发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们。

我目前正在开发一个SAPUI5应用程序,我想做一个通知部分。

我正在用消息弹出窗口进行操作,这是我的代码:

 onInit:function(){
//创建任何数据和模型并将其设置为视图
 this.checkUser();
 var oNotif = new sap.ui.model.odata.ODataModel(cnURI,false," jdiaz"," sineti.01");
 var oONotif = new sap.ui.model.json.JSONModel();
 oNotif.read("/img/znoticeSet",未定义,未定义,false,
 function(oData,response){oONotif.setData(oData);});
 this.getOwnerComponent()。setModel(oONotif," notif");
 },

 onOpenPopover:函数(oEvent){
//创建弹出框
 如果(!this._oPopover){
 this._oPopover = sap.ui.xmlfragment(" popoverNavCon"," demo.fragments.NotificationPopOver",this);
 this.getView()。addDependent(this._oPopover);
 }
 this._oPopover.openBy(oEvent.getSource());
 },

 onNavToProduct:函数(oEvent){
    var oCtx = oEvent.getSource()。getBindingContext(" notif");
    var oNavCon = Fragment.byId(" popoverNavCon"," navCon");
    var oDetailPage = Fragment.byId(" popoverNavCon","详细信息");
          oNavCon.to(oDetailPage);
 oDetailPage.bindElement(oCtx.getPath());
 },
 onNavBack:函数(oEvent){
 var oNavCon = Fragment.byId(" popoverNavCon"," navCon");
 oNavCon.back();
 },
 

这是我的xml片段:

 
 
 
 <页面
 id =" notifications"
 title =" Notificaciones">
 <清单
 id =" list"
 items =" {notif>/results}">
 
 
 
 <页面
 id =" detail"
 showNavButton =" true"
 navButtonPress =" onNavBack"
 title =" Notificaciones">
 
 <属性>
 
 
 
 
 
 
 
 
 

这是我的结果:

但是,当我想查询列表中的一个元素时,我没有得到任何数据以及之前提到的错误。 这是图片:

我收到此错误:

通过我的TileAdmin.controller.js第67行的方式是:oDetailPage.bindElement(oCtx.getPath());

我希望你们能帮助我!

最好的问候

(22.7 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们。

我目前正在开发一个SAPUI5应用程序,我想做一个通知部分。

我正在用消息弹出窗口进行操作,这是我的代码:

 onInit:function(){
//创建任何数据和模型并将其设置为视图
 this.checkUser();
 var oNotif = new sap.ui.model.odata.ODataModel(cnURI,false," jdiaz"," sineti.01");
 var oONotif = new sap.ui.model.json.JSONModel();
 oNotif.read("/img/znoticeSet",未定义,未定义,false,
 function(oData,response){oONotif.setData(oData);});
 this.getOwnerComponent()。setModel(oONotif," notif");
 },

 onOpenPopover:函数(oEvent){
//创建弹出框
 如果(!this._oPopover){
 this._oPopover = sap.ui.xmlfragment(" popoverNavCon"," demo.fragments.NotificationPopOver",this);
 this.getView()。addDependent(this._oPopover);
 }
 this._oPopover.openBy(oEvent.getSource());
 },

 onNavToProduct:函数(oEvent){
    var oCtx = oEvent.getSource()。getBindingContext(" notif");
    var oNavCon = Fragment.byId(" popoverNavCon"," navCon");
    var oDetailPage = Fragment.byId(" popoverNavCon","详细信息");
          oNavCon.to(oDetailPage);
 oDetailPage.bindElement(oCtx.getPath());
 },
 onNavBack:函数(oEvent){
 var oNavCon = Fragment.byId(" popoverNavCon"," navCon");
 oNavCon.back();
 },
 

这是我的xml片段:

 
 
 
 <页面
 id =" notifications"
 title =" Notificaciones">
 <清单
 id =" list"
 items =" {notif>/results}">
 
 
 
 <页面
 id =" detail"
 showNavButton =" true"
 navButtonPress =" onNavBack"
 title =" Notificaciones">
 
 <属性>
 
 
 
 
 
 
 
 
 

这是我的结果:

但是,当我想查询列表中的一个元素时,我没有得到任何数据以及之前提到的错误。 这是图片:

我收到此错误:

通过我的TileAdmin.controller.js第67行的方式是:oDetailPage.bindElement(oCtx.getPath());

我希望你们能帮助我!

最好的问候

(22.7 kB)
付费偷看设置
发送
1条回答
小c菟菟
1楼-- · 2020-09-20 15:55

胡安,

我试图重现您的问题,但并没有得到与您相同的错误。

请查看以下我的git存储库中的示例

检查片段xml上的odata映射属性。 在我看来,您使用odata绑定的方式错误。

只需在列表的项目上指定主要集合,然后直接使用每个属性即可。

请记住,在片段上设置模型时,它将对其中的所有页面均有效。 因此,详细信息页面将绑定到先前定义的相同集合。 因此,您无需再次设置任何集合。

此外,还有一个新的通知列表组件可以显示 通知消息。 该组件将缩小可见数据,并允许您添加按钮和删除操作。

关于,
伊凡

一周热门 更多>