列表控件未与JSON模型绑定-SAPUI5

2020-08-17 20:19发布

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

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


嗨,

我正在使用sap.m.List显示一些数据。 数据来自JSON模型,它也有数据。 但是由于某种原因,绑定无法正常工作,并且列表视图中没有显示数据。 即使没有错误。

purchaseHistory.view.xml

 
 
 <页面>
 <页面标题="标题">
 <内容>
 
 <项目>
  
 
 
 
 
 
 
 


 

purchaseHistory.controller.js

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


 返回Controller.extend(" novigoapplications.SuperMarket.controller.purchaseHistory",{

 onInit:函数(){
 var oModel = new sap.ui.model.odata.v2.ODataModel("/img/sap/opu/odata/sap/ZGW_UI5_SUPER_MARKET_SRV");
 sap.ui.getCore()。setModel(oModel," purchaseHistory");
 var model = sap.ui.getCore()。getModel(" purchaseHistory");
 model.setHeaders({
 " X-Requested-With":" X"
 });
 var readURL ="/img/CustomerSet('" + window.custid +"')/CusttopurNav";
 model.read(readURL,{
 成功:函数(oData,oResponse){
 var PurchaseHistoryData = new sap.ui.model.json.JSONModel({
 "结果":oData.results
 });
 sap.ui.getCore()。setModel(purchaseHistoryData," purchaseHistoryData");
 }
 });
 }
 });
 });
 

谁能告诉我这里是什么错误?

谢谢。

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

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


嗨,

我正在使用sap.m.List显示一些数据。 数据来自JSON模型,它也有数据。 但是由于某种原因,绑定无法正常工作,并且列表视图中没有显示数据。 即使没有错误。

purchaseHistory.view.xml

 
 
 <页面>
 <页面标题="标题">
 <内容>
 
 <项目>
  
 
 
 
 
 
 
 


 

purchaseHistory.controller.js

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


 返回Controller.extend(" novigoapplications.SuperMarket.controller.purchaseHistory",{

 onInit:函数(){
 var oModel = new sap.ui.model.odata.v2.ODataModel("/img/sap/opu/odata/sap/ZGW_UI5_SUPER_MARKET_SRV");
 sap.ui.getCore()。setModel(oModel," purchaseHistory");
 var model = sap.ui.getCore()。getModel(" purchaseHistory");
 model.setHeaders({
 " X-Requested-With":" X"
 });
 var readURL ="/img/CustomerSet('" + window.custid +"')/CusttopurNav";
 model.read(readURL,{
 成功:函数(oData,oResponse){
 var PurchaseHistoryData = new sap.ui.model.json.JSONModel({
 "结果":oData.results
 });
 sap.ui.getCore()。setModel(purchaseHistoryData," purchaseHistoryData");
 }
 });
 }
 });
 });
 

谁能告诉我这里是什么错误?

谢谢。

付费偷看设置
发送
7条回答
callcenter油条
1楼 · 2020-08-17 20:46.采纳回答

将您的控制器代码修改为:

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




 返回Controller.extend(" novigoapplications.SuperMarket.controller.purchaseHistory",{


 onInit:函数(){
/* var that = this;  */
 var oModel = new sap.ui.model.odata.v2.ODataModel("/img/sap/opu/odata/sap/ZGW_UI5_SUPER_MARKET_SRV");
 sap.ui.getCore()。setModel(oModel," purchaseHistory");
 var model = sap.ui.getCore()。getModel(" purchaseHistory");
 model.setHeaders({
 " X-Requested-With":" X"
 });
 var readURL ="/img/CustomerSet('" + window.custid +"')/CusttopurNav";
 model.read(readURL,{
 成功:函数(oData,oResponse){
 var PurchaseHistoryData = new sap.ui.model.json.JSONModel({
 "结果":oData.results
 });
 sap.ui.getCore()。setModel(purchaseHistoryData," purchaseHistoryData");
/* that.getView()。setModel(purchaseHistoryData," purchaseHistoryData");  */
 }
 });
 }
 });
 });
 

我添加了两行:

var that = this; 在onInit方法的第1行,并且

在读取调用中是that.getView()。setModel(purchaseHistoryData," purchaseHistoryData");

请取消注释这些行

骆驼绵羊
2楼-- · 2020-08-17 20:35

那太好了。

继续学习。

关于

Anmol

野沐沐
3楼-- · 2020-08-17 20:32

亲爱的阿赫萨尔,

问题可能是拼写错误(结果R为大写字母)

请按以下说明进行更改

 < 列表headerText ="购买历史",宽度=" 60%"
       items =" {/results/}"
       id =" history">
       <项目>
 
           
       
 
 

OR

 <列表headerText ="购买历史记录" width =" 60%"
       items =" {路径:'purchaseHistoryData>/results/'}"
       id =" history">
       <项目>
 
           
       
  

问候

Venkat

落灬小鱼
4楼-- · 2020-08-17 20:53

@ Venkateswaran(Venkat)Krishnamurthy 实际上我已经有一个默认模型,这就是为什么我将这个命名为PurchaseHistoryData

5楼-- · 2020-08-17 20:50

尝试设置 模型也要查看。

落灬小鱼
6楼-- · 2020-08-17 20:29

这-可能指向另一个对象。

在您的控制器脚本开头,获取视图名称并将其存储

 var comp  = this.getOwnerComponent()。getMetadata()//返回控制器的视图
 var oView = comp.getRootView()

然后使用

 oView.setModel(oModel," purchaseHistory"); 
打一壶酱油
7楼-- · 2020-08-17 20:29

当您在成功函数中调用OData服务时,this.getView()无效,而不是尝试写入

var oView = this.getView(); 在onInit()函数之后

并将OData成功内的模型设置为

oView.setModel(purchaseHistoryData," purchaseHistoryData")。;

这将解决。

一周热门 更多>