sap.ui.require in SAP UI5 and require in nodejs

UI5

例如我需要在controller的onShowHello里通过MessageToast弹一个消息显示在UI上,

我需要先定义我自己的controller,该controller extend自UI5标准的controller module,路径为sap/ui/core/mvc/Controller, 而为了调用MessageToast的show方法,也必须先拿到MessageToast的实例。所以UI5里使用sap.ui.define去加载这两个依赖的module,加载完成后,会调用应用开发人员传入的回调函数,加载的两个module的内容作为两个输入参数传入该回调函数。

UI5所有的module由jquery.sap.global.js中的Module统一管理。

更多细节请查看我的SAP前同事Wu Ji的博客SAPUI5 walkthrough step 6 – modules, dive in – how does modules work?

当然也存在sap.ui.require这种简洁用法。一个UI5框架的使用例子:

nodejs

逻辑和UI5类似,假设我想使用queryString这个module,只需要用nodejs标准的require函数将其引入:

然后就可在应用代码里使用该module通过module.exports暴露出的方法:

require调用internal/module.js里的self.require:

然后是Module._load:

nodejs也有类似UI5的module统一管理器:Module._cache. 每次加载module时,首先从这个管理器里查看是否该module已经加载。只有当module在管理器里不存在时才会真正加载,new一个Module对象,维护好属性后存入module管理器。

加载好的module就是一系列function的集合:


要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原文地址:http://blog.51cto.com/5899363/2107839

时间: 2024-08-07 16:41:53

sap.ui.require in SAP UI5 and require in nodejs的相关文章

SAP UI 搜索分页技术

搜索分页技术往往和另一个术语Lazy Loading(懒加载)联系起来.今天由Jerry首先介绍S/4HANA,CRM Fiori和S4CRM应用里的UI搜索分页的实现原理.后半部分由SAP成都研究院菜园子小哥王聪向您介绍Twitter的懒加载实现. 关于王聪的背景介绍,您可以参考他的前一篇文章:SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么. S/4HANA Fiori应用搜索分页实现原理 以S/4HANA Product Master Fiori应用为例,如果什么

打破传统天价SAP培训,开创SAP师徒之路,经验丰富的老顾问带徒弟

SAP领航社区,开设了一个导师性质的师徒圈子,类似大学导师带研究生,导师给学生安排课题.分配任务.分享资料,让学生自学提高.我们的教学方法是以自学为主,辅导为辅助,在实践中积累经验掌握原理.主要方向ABAP.FICO.SD.MM.PP.HR.CS.CRM.Webdynpro.BO.BW 等等,经验丰富的老顾问带新徒弟,既可以教徒弟技术,又可以给徒弟推荐项目机会 (特殊说明:非线下或者网络授课,通过分享资料,让学生自学,不懂问导师,引导之路) 教学方法: SAP领航推出的导师性质的培训(经验老道的

C# 使用 SAP NCO3.0 调用SAP RFC函数接口

C# 使用 SAP NCO3.0 调用SAP RFC函数接口 最近使用C#调用SAP RFC函数,SAP提供了NCO3.0组件. 下载组件安装,之后引用“sapnco.dll”和“sapnco_utils.dll”两个文件. 在程序中 using SAP.Middleware.Connector; 具体看下面代码 使用app.config文件配置注册客户端连接 <?xml version="1.0"?> <configuration> <configSec

【HANA系列】SAP HANA DB 和SAP HANA studio version查看

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA DB 和SAP HANA studio version查看 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 To know the HANA Studio version: Help->About SAP HANA Studio. To know the HANA DB versio

【ABAP系列】SAP 一个完整的SAP的Abap例子(idoc,edi文件的相互转换)

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 一个完整的SAP的Abap例子(idoc,edi文件的相互转换) 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 ? *&---------------------------------------------------------------------* *& Report Z_

SAP UI configuration determination的优先级

CRM WebUI的text determination logic: https://blogs.sap.com/2014/03/07/ui-text-label-determination-logic/ 优先级从高到低: Text Repository-> Design layer -> ABAP Dictionary WebUI configuration determination: https://blogs.sap.com/2014/03/07/ui-configuration-d

SAP BASIS 基础教程 SAP BASIS daily Job SM13,SM37,SM21

SAP BASIS daily Job (1) Check updates(success or failed) 1.    transaction SM13或Tools Administration MonitorUpdate) 2.    Client选择 * 3.    用户选择 *. 4.    在Status栏, 选择All. 5.    时间改为一月前(例如30/10/2017) 6.    按Enter. 查找在状态栏中包含ERR错误信息的记录, 这些项是失败或被中止的updata

[Step By Step]用信息设计工具IDT创建从SAP Business Object到SAP HANA的连接

1. 打开Information Design Tool, 并添加BO Server的连接 2. 在Connection上右击, 选择Insert Relational Connection 3. 输入Resource Name 4. 选择数据库驱动SAP=>JDBC 5. 输入连接信息并测试连接 6. 确认连接设置 点击Finish之后,则连接创建成功

Python结合SAP GUI Script操作sap的简易教程

众所周知,如果要用Python做一些桌面WIN32应用的自动化工作,就需要用到著名的pywin32尤其是其中的win32com.client模块,pywin32的安装不能直接通过pip install方法,奉上pywin32的官方github链接:https://github.com/mhammond/pywin32/releases.选择与桌面系统版本.python版本对应的版本安装即可: 如果一切正常,在Ipython中导入该模块时不会报异常!如: In [1]: import win32c