通过使用setModel(oModel,sName?)将参数传递给其他视图;

2020-08-23 15:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我有3个视图,分别名为v...

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

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


嗨,

我有3个视图,分别名为view1,view2,view3。

在view1::我有一个按钮。 单击按钮后,我已经向view2发送了一个参数

//view1.js
 var oModelx = new JSONModel({Vorna:" john",Nachn:" lave"});
 this.getView()。setModel(oModelx," Global");
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" view2");
 

view2.xml 可以将参数带入输入元素。

//view2.xml
   

到目前为止,一切都很好,并且按我的意愿工作。

但是; 我还想通过单击其他按钮将其他参数传输到view3,这是view2.xml的元素

//view2.js
 var oModel2 = new JSONModel({
 Pernr:" 9999",
 });
 this.getView()。setModel(oModel2," Global2");
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" view3"); 

很遗憾, view3.xml 输入框中没有任何内容。

//view3.xml
   

您是否知道为什么最后一个输入(view3.xml)框无法获取参数?

注意:如果我忽略view2并使用第一个单击view1的按钮导航( navTo(" view3")),view3.xml可以使用该参数。 xml。

//manifest.json
 "路由":{
 " config":{
 " routerClass":" sap.m.routing.Router",
 " viewType":" XML",
 "异步":是的,
 " viewPath":" zview1_ns.zview1.view",
 " controlAggregation":"页面",
 " controlId":" app",
 " clearControlAggregation":false
 },
 "路线":[
 {
 " pattern":" view1",
 " name":" view1",
 " target":" view1"
 },
 {
 " pattern":" view2",
 " name":" view2",
 " target":" view2"
 },
 {
 " pattern":" view3",
 " name":" view3",
 " target":" view3"
 }
 ],
 "目标":{
 "概述":{
 " viewName":" view1",
 " viewLevel":1
 },
 " view2":{
 " viewName":" view2",
 " viewLevel":2
 },
 " view3":{
 " viewName":" view3",
 " viewLevel":3
 }
 }
 }
 

(4.2 kB)
付费偷看设置
发送
5条回答
大道至简
1楼 · 2020-08-23 16:14.采纳回答

您应该将模型设置为核心,使其进入视图3并随后进行设置。

奄奄一息的小鱼
2楼-- · 2020-08-23 16:27

尝试使用拉奎尔·马丁·巴里提到的方法,因为这是最佳/推荐的方法 解决问题的方法。

小灯塔
3楼-- · 2020-08-23 16:05

通过路由可以实现此目的。

检查示例:

导航

nice_wp
4楼-- · 2020-08-23 16:27

如果要将相同的数据用于多个视图 那么您应该将该模型设置为Component或Core。 这样,视图就可以获取访问数据的范围。

风早神人
5楼-- · 2020-08-23 16:26

嗨,谢谢大家

 this.getOwnerComponent()。setModel(oModel," Globale");  

正在工作而不是

 this.getView()。setModel(oModel," Globale"); 

一周热门 更多>