如何将JSON文件绑定到SAPUI5中的XML视图?

2020-09-12 22:32发布

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

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


我正在尝试使用UI5将JSON文件绑定到SAPwebIDE中的xml视图。 而且每次执行时都会出现此错误( SCRIPT5022:无法从../../resources/null/App.js加载" null/App.js":404-未找到) 并显示空白屏幕。

请帮助...。

View1.xml

 
  
   <页面>
    
     <内容>
      
       <列>
        
         
        
        
         
        
        
         
        
        
         
        
       
       
        
        
        
        
       
      
     
    
   
  
  

View1.controller.js

 sap.ui.define([
  " sap/ui/core/mvc/Controller"
 ],函数(控制器){
  "使用严格";
  返回Controller.extend(" com.db.DataBinding.controller.View1",{
   onInit:函数(){
    var oTable = this.getView()。byId(" tab1");
    var oModel = new sap.ui.model.json.JSONModel();
    oModel.loadData(" ./products.json");
    oTable.setModel(oModel);
   }
  });
 }); 
 

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

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


我正在尝试使用UI5将JSON文件绑定到SAPwebIDE中的xml视图。 而且每次执行时都会出现此错误( SCRIPT5022:无法从../../resources/null/App.js加载" null/App.js":404-未找到) 并显示空白屏幕。

请帮助...。

View1.xml

 
  
   <页面>
    
     <内容>
      
       <列>
        
         
        
        
         
        
        
         
        
        
         
        
       
       
        
        
        
        
       
      
     
    
   
  
  

View1.controller.js

 sap.ui.define([
  " sap/ui/core/mvc/Controller"
 ],函数(控制器){
  "使用严格";
  返回Controller.extend(" com.db.DataBinding.controller.View1",{
   onInit:函数(){
    var oTable = this.getView()。byId(" tab1");
    var oModel = new sap.ui.model.json.JSONModel();
    oModel.loadData(" ./products.json");
    oTable.setModel(oModel);
   }
  });
 }); 
 
付费偷看设置
发送
4条回答
大圣 - sap领域执行人,9年sap运营经验
1楼 · 2020-09-12 22:47.采纳回答

您未设置默认的名称空间(为了更好的可读性,我更改了顺序):

  controllerName =" com.db.DataBinding.controller.View1" 
xmlns:html =" http://www.w3.org/1999/xhtml"
xmlns: mvc =" sap.ui.core.mvc" xmlns:m =" sap.m"
xmlns:core =" sap.ui.core"
displayBlock =" true">

但是,XMLView中的App控件使用的是默认名称空间,这会导致您得到错误。 您有几种选择,以下是几种(也请参见代码中的注释):

选项1-通过添加其他名称空间xmlns =" sap.m"(使之难看,但可以使用)将sap.m设置为默认名称空间:

  controllerName =" com.db.DataBinding.controller.View1"
     xmlns:html =" http://www.w3.org/1999/xhtml" 
xmlns:mvc =" sap.ui.core.mvc" xmlns:m =" sap.m" xmlns =" sap.m"
xmlns:core =" sap.ui.core"
displayBlock =" true">


选项2-将sap.m设置为默认名称空间+删除视图中的所有" m:"(我的偏爱):

  xmlns:html =" http://www.w3.org/1999/xhtml" 
xmlns:mvc =" sap.ui.core.mvc "
xmlns =" sap.m"
xmlns:core =" sap.ui.core"
displayBlock =" true"> <页面> <内容> <!-在您的简单情况下就足够-> <列>
<!-最佳做法:使用默认聚合-> /> />


选项3-在视图中添加" m:":

  controllerName =" com.db.DataBinding.controller.View1" 
xmlns:html =" http://www.w3.org/1999/xhtml"
xmlns: mvc =" sap.ui.core.mvc"
xmlns:m =" sap.m"
xmlns:core =" sap.ui.core"
displayBlock =" true"> <!-这里也需要" m:"->
<!-最佳做法:使用默认聚合->


不是问题,但是在代码中,我对控制器的其他反馈是:

  1. 也将依赖项注入用于JSONModel
  2. 您可以将URL直接传递给构造函数,请参阅API文档
  3. 无需在表上设置模型,您可以在视图上直接设置
    ==>通常,您将其称为"视图模型"并使用 this.getView()。setModel (oModel," view");
    但是您还必须通过在前面添加" view>"
  4. 来更新绑定
 sap.ui.define([
     " sap/ui/core/mvc/Controller",
     " sap/ui/model/json/JSONModel"
 ],函数(控制器,JSONModel){
     "使用严格";
     返回Controller.extend(" com.db.DataBinding.controller.View1",{
         onInit:函数(){
             var oModel = new JSONModel(" ./products.json");
             this.getView()。setModel(oModel);
         }
     });
 });
 
Violet凡
2楼-- · 2020-09-12 22:47

成功了!!!!!!

非常感谢您的帮助。

致谢

Siddharth

huskylover
3楼-- · 2020-09-12 22:52

嗨,

Nabi提供了详细的答案。

如果您感到它与名称空间错误混淆,建议您在SAP Web IDE中使用SAPUI5模板创建一个新项目。 该模板已经可以处理所有名称空间的内容,因此您可以专注于绑定。 您可以遵循教程

在拥有SAPUI5应用程序结构之后,您可以使用了解更多有关JSON绑定的信息 文档。

让我知道您是否遇到困难。

加油

维克多。

Alawn_Xu
4楼-- · 2020-09-12 23:10

它符合纳比的建议。

非常感谢您的帮助。

致谢

Siddharth

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答