更新购物车按钮的物品计数器

2020-09-20 17:12发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 嗨, 我正在...

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

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


嗨,

我正在UI5应用程序中实现购物车功能,以收集项目集合以进行进一步处理。 我的购物车可以作为我的主从应用程序的功能正常工作。

我要添加的一件事是购物车按钮旁边的计数器,用于通知用户当前购物车中有多少个物品。 当我使用$ count选项时,我的网关服务愉快地返回正确的值。 到目前为止,一切都很好。

我正在努力的是

  1. 更新按钮旁边的计数器的正确位置
  2. 检索oData响应

re 1:我决定在 onBeforeRendering 方法中检索计数器。 尽管我很高兴在这里听任何建议。

关于2:我正在使用下面的代码。

 onBeforeRendering:function(){
 var oCountModel = new sap.ui.model.odata.v2.ODataModel(" <​​oData GW service>");

 oCountModel.read("/img/cartSet/$ count",{
 方法:" GET",
 异步:假,
 成功:功能(数据){
 var response =(JSON.stringify(data));
 },
 错误:function(){
 }
 });
 },
 

上面的代码同步调用服务,但不返回服务响应("数据未定义")。 但是,稍后我可以在Chrome的"网络"标签中看到响应。

因此,基本上,该服务可以正常工作并被调用,但是由于某种原因,我似乎无法获得最终的响应。

任何想法/提示我在哪里出错?

servicecall-response.jpeg (29.0 kB)
6条回答
骆驼绵羊
2020-09-20 18:02

您好Tarun

首先谢谢您的答复。

我已经将您建议的代码添加到我的onInit方法中,如下所示:

 onInit:function(){
 var oViewModel = new JSONModel({
 忙:错误,
 延迟:0
 cartCount:""
 });
//(..省略代码..)
         this.setModel(oViewModel," detailView");
 this.getOwnerComponent()。getModel()。read("/img/cartSet/$ count",{
 成功:function(oResult){
 oViewModel.setProperty("/img/cartCount",oResult);
 }
 });
 },
 

manifest.json中的模型现在看起来像这样:

"数据":{
 " dataSource":" MY_SRV",
 " preload":false,
 "设置":{
         " useBatch":否
         }
 }
 

detailView.xml

 /cartCount}" type ="默认" icon =" sap-icon://cart" iconFirst =" true" width =" auto" enabled =" true" visible =  " true" press =" _ onButtonCart"/>
 

Chrome中的网络消息响应如下:

Chrome控制台告诉我:"段'cartSet'找不到资源",这似乎表明我的元数据不匹配,但我看不到原因。 我还尝试提供服务参数,例如:找不到服务接受的段'cartSet(Username = xyz',ItemNo = 1)'的资源。 但这导致控制台中的响应相同(但仍可在GW客户端中使用)。

当我使用$ count参数测试GW服务时,这是成功的响应。 我也尝试过为服务提供服务参数(键和项号),而根据GW服务的编码,则不需要这些参数。 但这并没有改变。

 GW客户端

希望这可以进一步阐明这一点。 任何进一步的帮助表示赞赏。

再次感谢

M

一周热门 更多>