SAPUI5-XML模型绑定问题

2020-09-27 09:06发布

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

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


我正在尝试打印一个非常简单的输出。

我的模型是XML文件,而我的视图是XML。 请帮助我解决问题。

我正在获取布局,但无法查看数据。 似乎由于缺少一些逻辑而无法将模型绑定到XML视图。

而且,我想了解一件事。.当我使用模板在WebIDE中创建SAPUI5应用程序时...获得控制器,html和查看文件。 但是我还得到了一个component.js文件,我认为使用Eclipse创建项目时不会出现。 而且,通常在Eclipse项目中,我相信oninit函数在控制器中可用,而当通过WEBIDE创建时在项目中不可用。 通过WEBIDE创建项目时,我在component.js文件中看到一个初始化函数。 请也阐明这一点。 谢谢。

Component.js

 sap.ui.define([
 " sap/ui/core/UIComponent",
 " sap/ui/设备",
 " Practise_XMLview/模型/模型"
 ],功能(UIComponent,设备,模型){
 "使用严格";


 返回UIComponent.extend(" Practise_XMLview.Component",{


 元数据:{
 清单:" json"
 },


/**
 *该组件在应用程序启动期间由UI5自动初始化,并一次调用init方法。
 * @上市
 * @override
 */
 初始化:function(){
//调用基本组件的init函数
 UIComponent.prototype.init.apply(this,arguments);

 var oModel = new sap.ui.model.xml.XMLModel();
 oModel.loadData(" model/school.xml");


//将模型分配给核心,以便在整个应用程序生命周期中都可以使用该模型。
 sap.ui.getCore()。setModel(oModel);


//设置设备型号
//this.setModel(models.createDeviceModel()," device");
 }
 });


 });

 
  view.js文件

 
 
 <页面>
 
 <内容>
 

 
 
 
 
 
 
 
 


 
 控制器文件


 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";

 var oModel = new sap.ui.model.xml.XMLModel();
 oModel.loadData(" model/school.xml");


//将模型分配给核心,以便在整个应用程序生命周期中都可以使用该模型。
 sap.ui.getCore()。setModel(oModel);


 返回Controller.extend(" Practise_XMLview.controller.View1",{


 });


 });

 
 模型文件

 <?xml版本=" 1.0"编码=" UTF-8"?>


 <学校>
 
1年级 Sameer 32

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

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


我正在尝试打印一个非常简单的输出。

我的模型是XML文件,而我的视图是XML。 请帮助我解决问题。

我正在获取布局,但无法查看数据。 似乎由于缺少一些逻辑而无法将模型绑定到XML视图。

而且,我想了解一件事。.当我使用模板在WebIDE中创建SAPUI5应用程序时...获得控制器,html和查看文件。 但是我还得到了一个component.js文件,我认为使用Eclipse创建项目时不会出现。 而且,通常在Eclipse项目中,我相信oninit函数在控制器中可用,而当通过WEBIDE创建时在项目中不可用。 通过WEBIDE创建项目时,我在component.js文件中看到一个初始化函数。 请也阐明这一点。 谢谢。

Component.js

 sap.ui.define([
 " sap/ui/core/UIComponent",
 " sap/ui/设备",
 " Practise_XMLview/模型/模型"
 ],功能(UIComponent,设备,模型){
 "使用严格";


 返回UIComponent.extend(" Practise_XMLview.Component",{


 元数据:{
 清单:" json"
 },


/**
 *该组件在应用程序启动期间由UI5自动初始化,并一次调用init方法。
 * @上市
 * @override
 */
 初始化:function(){
//调用基本组件的init函数
 UIComponent.prototype.init.apply(this,arguments);

 var oModel = new sap.ui.model.xml.XMLModel();
 oModel.loadData(" model/school.xml");


//将模型分配给核心,以便在整个应用程序生命周期中都可以使用该模型。
 sap.ui.getCore()。setModel(oModel);


//设置设备型号
//this.setModel(models.createDeviceModel()," device");
 }
 });


 });

 
  view.js文件

 
 
 <页面>
 
 <内容>
 

 
 
 
 
 
 
 
 


 
 控制器文件


 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";

 var oModel = new sap.ui.model.xml.XMLModel();
 oModel.loadData(" model/school.xml");


//将模型分配给核心,以便在整个应用程序生命周期中都可以使用该模型。
 sap.ui.getCore()。setModel(oModel);


 返回Controller.extend(" Practise_XMLview.controller.View1",{


 });


 });

 
 模型文件

 <?xml版本=" 1.0"编码=" UTF-8"?>


 <学校>
 
1年级 Sameer 32
付费偷看设置
发送
2条回答
nice_wp
1楼-- · 2020-09-27 09:50

谢谢..该问题已通过对modelbindingComponent.js文件进行较小的修正而得以解决

但是我仍然有这种困惑...

b/w controller.js和component.js有什么区别?

大简至美
2楼-- · 2020-09-27 09:54

完美。 谢谢,现在这清楚了我的疑问。

但是我最后一个疑问...

当我从Eclipse创建SAPUI5项目时,我仅看到视图和控制器,但是当从WEBIDE创建项目时,我看到component.js文件以及其他文件。 而且,Eclipse项目的controller.js文件具有oninit方法,在这里我可以实例化任何对象,但是在通过WEBIDE创建的项目中,我在controller.js中看不到该方法,而在component.js中却看到了(方法名称略有不同) 'init')...

我的理解是正确的,因为从Eclipse&WEBIDE创建的项目结构和文件结构是不同的。

一周热门 更多>