SAPUI5视图之间的数据传输最佳实践

2020-08-20 19:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 视图之间有多种传输数据的...

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

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


嗨,

视图之间有多种传输数据的方法。

  1. 从网址进行ID转移
  2. 使用component.js并在其中进行建模: https://answers.sap.com/questions/12258846/how-to-pass-data-from-one-view-to-another-view.html
  3. 使用sap.ui.getCore()。setModel(): https://answers.sap.com/questions/12385839/pass-data-from-one-view-to-another-view.html ---对于此选项 我对此解决方案有一些不好的意见,以便它会覆盖Launchpad等上的所有模型。
  4. ...

请让我知道实现此目标的最佳方法。

谢谢。

付费偷看设置
发送
5条回答
土豆飞人
1楼 · 2020-08-20 20:05.采纳回答

最佳实践是两者的结合,即通过路由将参数作为url中的主题标签的一部分传递给组件上的模型。

始终确保每个页面都有唯一的标签,以便始终能够在视图上初始化并显示正确的信息。

如果要共享更多信息 只是一个ID,您可以为此使用JSONModel。 我建议避免使用" sap.ui.getCore.setModel(model)"创建模型。 相反,您应该在清单中定义它们(JSONModels也可以这样做)。 这样,您只需使用" this.getModel(" ")即可在组件中访问它们。在视图中,您可以使用" this.getOwnerComponent()。getModel(" <​​modelname>")访问这些模型。

希望这能回答您的问题。

DafaDDDa
2楼-- · 2020-08-20 20:00

不可能直接从odata模型访问所有属性。 您必须将其绑定到视图以查看数据,或使用读取操作实际在控制器中获取数据。 您也可以通过bindingcontext访问,但是再次需要首先绑定它。

要共享数据,应使用json模型。 如果要在清单上声明此名称,则应将类型更改为sap.ui.model.json.JSONModel

派大星 ヾ
3楼-- · 2020-08-20 20:21

嗨,

最佳做法是使用 用于存储数据并在多个视图中访问它的模型。 请在此处查看有关数据绑定的UI5演练:

https://ui5.sap。 com/#/topic/e5310932a71f42daa41f3a6143efca9c

最诚挚的问候

Geert-Jan Klaps

愤怒的猪头君
4楼-- · 2020-08-20 20:18

嗨,

这至少也是我用来设置模型的方式。 无论如何,这都是官方文档,也可以被视为最佳实践。

最诚挚的问候

Geert-Jan Klaps

clasier
5楼-- · 2020-08-20 20:18

Hi Fikret

最佳做法

使用ID声明Odatamodel或JSONModel或将其保留为Descriptor文件中的默认模型(清单),然后您可以在任何视图中访问它。

一周热门 更多>