在视图之间传递模型

2020-09-21 09:38发布

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

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


嗨社区

我有一个小问题,看这是我的应用程序

在我的表格中,我显示了一些值,不是全部都是因为它只是一个简短的版本,如果您对其中一项感兴趣,请转到具有完整信息的另一视图,但是我不知道如何,也许会传递一个 模型到视图,但是我如何仅通过商品信息传递模型? 并非所有具有完整信息或采用项目表索引的模型都将模型传递给另一个视图,并且取决于项目表索引,我在视图上打印了该项目模型; 听起来令人困惑

这是我的表格视图:

 
 <列>
 <专栏>
 
 
 
 
 

 
 
 
 
 <项目>


 
 <单元格>
 
 
 
 
 
 
 

这是我的项目和表事件:

 onSelectionChange:function(oEvt){
 var item = oEvt.getParameter(" listItem");
 item.firePress();
 },

 oTableItemPress:function(oEvent){

 var oItem = oEvent.getSource();
 var oIndex = oItem.getParent()。indexOfItem(oItem);



 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" detail");
 },
 

因此,我想在第二个视图中打印所有数据(以防万一,如果您在第三个表项中为clic):

  1. Asesor:" 10001384"
  2. Cli_nombre:" JORGE NAZAR MANZUR NAZAR MANZUR"
  3. DbmLicext:""
  4. Esp_servicio:""
  5. Fecha:"/日期(1457308800000)/"
  6. Hora:" PT09H30M00S"
  7. Kunnr:" 0001135472"
  8. Nomb_asesor:""
  9. 附庸:" 1170"
  10. Usuario:""
  11. 时间戳:" 20160307093000

来自我的odata,它部分打印在我的表中,我想使用此变量来获取索引oItem = oEvent.getSource(); var oIndex = oItem.getParent()。indexOfItem(oItem); 并寻找某种方法仅将model-item(index)传递给我的第二个视图,但是我认为有更好的方法,或者再次执行带有索引的odata请求?

(52.3 kB)

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

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


嗨社区

我有一个小问题,看这是我的应用程序

在我的表格中,我显示了一些值,不是全部都是因为它只是一个简短的版本,如果您对其中一项感兴趣,请转到具有完整信息的另一视图,但是我不知道如何,也许会传递一个 模型到视图,但是我如何仅通过商品信息传递模型? 并非所有具有完整信息或采用项目表索引的模型都将模型传递给另一个视图,并且取决于项目表索引,我在视图上打印了该项目模型; 听起来令人困惑

这是我的表格视图:

 
 <列>
 <专栏>
 
 
 
 
 

 
 
 
 
 <项目>


 
 <单元格>
 
 
 
 
 
 
 

这是我的项目和表事件:

 onSelectionChange:function(oEvt){
 var item = oEvt.getParameter(" listItem");
 item.firePress();
 },

 oTableItemPress:function(oEvent){

 var oItem = oEvent.getSource();
 var oIndex = oItem.getParent()。indexOfItem(oItem);



 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" detail");
 },
 

因此,我想在第二个视图中打印所有数据(以防万一,如果您在第三个表项中为clic):

  1. Asesor:" 10001384"
  2. Cli_nombre:" JORGE NAZAR MANZUR NAZAR MANZUR"
  3. DbmLicext:""
  4. Esp_servicio:""
  5. Fecha:"/日期(1457308800000)/"
  6. Hora:" PT09H30M00S"
  7. Kunnr:" 0001135472"
  8. Nomb_asesor:""
  9. 附庸:" 1170"
  10. Usuario:""
  11. 时间戳:" 20160307093000

来自我的odata,它部分打印在我的表中,我想使用此变量来获取索引oItem = oEvent.getSource(); var oIndex = oItem.getParent()。indexOfItem(oItem); 并寻找某种方法仅将model-item(index)传递给我的第二个视图,但是我认为有更好的方法,或者再次执行带有索引的odata请求?

(52.3 kB)
付费偷看设置
发送
4条回答
半个程序猿
1楼-- · 2020-09-21 10:07

您可以遍历SAPUI5 SDK的步骤32:使用参数进行路由,该解释非常准确 如何在2个视图之间导航并将数据从第一个视图传递到第二个视图。

派大星 ヾ
2楼-- · 2020-09-21 09:43

感谢 @ saurabh.vakil 我来看看

野沐沐
3楼-- · 2020-09-21 10:02

你好Naoto Amari

无需深入研究代码,您就可以通过路由器或我最喜欢的"事件总线"将数据传递到不同的视图。 这是一个事件总线示例:

//Subscribe/监听事件,这是全局的,因此在任何控制器中都如此。
 sap.ui.getCore()。getEventBus()。subscribe(" someEventBussNAme"," EventName",this.functionToRun,this); 
functionToRun:function(channel,event,data){ //数据是从event.publish发送的。 请参见
console.log(数据) }

//推送事件和一些数据,这也是全局的,因此来自anny controller。 sap.ui.getCore()。getEventBus()。publish(" someEventBussNAme"," EventName",SendDataFromModelHere);

我看到您正在使用路由器进行导航。 我从不通过路由器传递数据,所以我不打算解释这是怎么做的:)

Cikesha
4楼-- · 2020-09-21 10:07

您好 Naoto Amari 。 希望这可以帮助。 我只是在输入您正在输入的内容。

查看1(粘贴数据):

 <输入值="" id =" inputVal" liveChange =" inputChanged"/> 

视图1的控制器(粘贴数据):

 inputChanged:function(oEvent){
 console.log(oEvent.getParameter(" value")));
 var valueToSend = oEvent.getParameter(" value");
//将值传递给事件监听器
 sap.ui.getCore()。getEventBus()。publish(" sendInput"," inputChanged",valueToSend);
 } 

控制器2(接收数据):

 onInit:function(){
 sap.ui.getCore()。getEventBus()。subscribe(" sendInput"," inputChanged",this.inputChangedReviced,this);
 },
 inputChangedReviced:函数(通道,事件,数据){
//可能是您发送的数据。 在这里做您需要的。 添加到tempDataModel
 console.log(data);
         this.getView()。getModel(" TempDataModel")。setProperty("/",data);
 } 

一周热门 更多>