bindRows不是函数

2020-09-15 02:20发布

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

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


我是UI5的新开发人员。 我正在尝试使用getTable()。bindRows将数据从NWGW绑定到现有的javascript表以获取输入值帮助。 开发工具是WebIDE,检查所有连接。 所有的odata服务都可以,并且可以提供Live Data和元数据。

但是我不断得到

未捕获的TypeError:oValueHelpDialog.getTable(...)。bindRows不是函数。

仅当应用程序在小屏幕设备(电话或我在Chrome开发工具中选择电话布局)上运行时,这种情况才会发生。

我不知道这是否是因为它可以将odata绑定到表? 手机对UI5的处理方式不同吗? 我将不胜感激任何帮助。 谢谢。

-------更新-------

这里是示例项目,这要感谢Tri Minh Le

重现该错误的步骤:

  • 将项目导入到Web IDE
  • 执行index.html
  • 打开Chrome开发工具
  • 选择设备:iPhone 6/7/8或其他手机
  • 刷新(F5)应用程序
  • 再次单击"值帮助"对话框>导致空白表

------更新END -------

控制器

 onValueHelpForDefaultSite:function(oEvent){

         var oValueHelpDialog = this.getFragmentForValueHelp();
         oValueHelpDialog.open();

         ...

         oValueHelpDialog.getTable()。bindRows(
             this.getEntitySet(
                 " ODATA_10_DEFAULT_SITE_SET",
                 " ODATA_10"
             )
         );
     } 

片段视图

 createContent:function(oController){

     var oValueHelpDialog = new sap.ui.comp.valuehelpdialog.ValueHelpDialog({
         标题:oController.getStrTextSite(),
         supportMultiselect:false,
         supportRanges:否,
         supportRangesOnly:false,

         好的:function(oControlEvent){
             oValueHelpDialog.close();
         },
         取消:function(oControlEvent){
             oValueHelpDialog.close();
         },
         afterClose:function(){
             oValueHelpDialog.destroy();
         }
     });

     var oThis = this;
     var oSearchField = new sap.m.SearchField({
         showSearchButton:sap.ui.Device.system.phone,
         占位符:oController.getStrTextSite(),
         showRefreshButton:是的,
         liveChange:function(oSearchEvent){
             oThis.onLiveSearchForSite(oSearchEvent,oController,oValueHelpDialog);
         }
     });

     var oColModel = new sap.ui.model.json.JSONModel();
     var aCols = this.createColumns(oController);
     oColModel.setData({
         列:aCols
     });
     oValueHelpDialog.getTable()。setModel(oColModel," columns");

     返回oValueHelpDialog;
 }
 ,createColumns:function(oController){
     返回[
         {
             标签:oController.getStrTextSite(),
             模板:oController.getStr10()+
                 oController.getStrGT()+
                 oController.getStrWERKS()
         },
         {
             标签:oController.getStrTextSiteName(),
             模板:oController.getStr10()+
                 oController.getStrGT()+
                 oController.getStrNAME1()
         }
     ];
 }
 

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

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


我是UI5的新开发人员。 我正在尝试使用getTable()。bindRows将数据从NWGW绑定到现有的javascript表以获取输入值帮助。 开发工具是WebIDE,检查所有连接。 所有的odata服务都可以,并且可以提供Live Data和元数据。

但是我不断得到

未捕获的TypeError:oValueHelpDialog.getTable(...)。bindRows不是函数。

仅当应用程序在小屏幕设备(电话或我在Chrome开发工具中选择电话布局)上运行时,这种情况才会发生。

我不知道这是否是因为它可以将odata绑定到表? 手机对UI5的处理方式不同吗? 我将不胜感激任何帮助。 谢谢。

-------更新-------

这里是示例项目,这要感谢Tri Minh Le

重现该错误的步骤:

  • 将项目导入到Web IDE
  • 执行index.html
  • 打开Chrome开发工具
  • 选择设备:iPhone 6/7/8或其他手机
  • 刷新(F5)应用程序
  • 再次单击"值帮助"对话框>导致空白表

------更新END -------

控制器

 onValueHelpForDefaultSite:function(oEvent){

         var oValueHelpDialog = this.getFragmentForValueHelp();
         oValueHelpDialog.open();

         ...

         oValueHelpDialog.getTable()。bindRows(
             this.getEntitySet(
                 " ODATA_10_DEFAULT_SITE_SET",
                 " ODATA_10"
             )
         );
     } 

片段视图

 createContent:function(oController){

     var oValueHelpDialog = new sap.ui.comp.valuehelpdialog.ValueHelpDialog({
         标题:oController.getStrTextSite(),
         supportMultiselect:false,
         supportRanges:否,
         supportRangesOnly:false,

         好的:function(oControlEvent){
             oValueHelpDialog.close();
         },
         取消:function(oControlEvent){
             oValueHelpDialog.close();
         },
         afterClose:function(){
             oValueHelpDialog.destroy();
         }
     });

     var oThis = this;
     var oSearchField = new sap.m.SearchField({
         showSearchButton:sap.ui.Device.system.phone,
         占位符:oController.getStrTextSite(),
         showRefreshButton:是的,
         liveChange:function(oSearchEvent){
             oThis.onLiveSearchForSite(oSearchEvent,oController,oValueHelpDialog);
         }
     });

     var oColModel = new sap.ui.model.json.JSONModel();
     var aCols = this.createColumns(oController);
     oColModel.setData({
         列:aCols
     });
     oValueHelpDialog.getTable()。setModel(oColModel," columns");

     返回oValueHelpDialog;
 }
 ,createColumns:function(oController){
     返回[
         {
             标签:oController.getStrTextSite(),
             模板:oController.getStr10()+
                 oController.getStrGT()+
                 oController.getStrWERKS()
         },
         {
             标签:oController.getStrTextSiteName(),
             模板:oController.getStr10()+
                 oController.getStrGT()+
                 oController.getStrNAME1()
         }
     ];
 }
 
付费偷看设置
发送
4条回答
吹牛啤
1楼 · 2020-09-15 02:49.采纳回答

您好Binh Thai,

请放置断点并进行调试,以查看oValueHelpDialog.getTable()是否返回任何对象。

此致

Tri

huskylover
2楼-- · 2020-09-15 02:53

嗨,Tri,非常感谢您的支持。

上周我自己弄清楚了:)

此致

Binh

Alawn_Xu
3楼-- · 2020-09-15 02:59

是否可以在F12开发人员工具的控制台中检查oValueHelpDialog.getTable()的值。

谢谢

Viplove

哎,真难
4楼-- · 2020-09-15 02:54

Viplove您好,请在图片中找到console.log

一周热门 更多>