SAPUI5应用入口App.controller.js是如何被UI5框架加载的?-成都快上网建站

SAPUI5应用入口App.controller.js是如何被UI5框架加载的?

首先在UI5应用的manifes.json里,定义了UI5应用的入口视图为App:

为盐都等地区用户提供了全套网页设计制作服务,及盐都网站建设行业解决方案。主营业务为成都做网站、成都网站设计、盐都网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

调试器里的pending数组的两个元素:

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

实际上对应了我在App.controller.js里定义的两个依赖:

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

而aModules数组里的两个对象,就是BaseController和JSONModel模块加载后的实例:

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

有经验的开发人员从这些函数列表bindProperty, bindTree, dataLoaded,getJSON等就能得知这个实例是JSONModel的实现。

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

这个注释写的比较清楚,如果factory函数返回不为false的值,则该值需要被赋到module的exported字段去。
from  https://github.com/amdjs/amdjs-api/blob/master/AMD.md
// "If the factory function returns a value (an object, function, or any value that coerces to true),
// then that value should be assigned as the exported value for the module."

UI5模块的加载器:ui5loader.js

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

那么我们应用代码的controller里到底return什么值呢?即BaseController调用extend方法后的返回值。

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

这个返回值在BaseController的基础上,包含了我们应用程序自定义的onInit方法。

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

至此,App.controller.js这个模块就加载完成了。
执行ready之前:

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

ready函数的职责就是把模块实例的state设置成Ready,settled设置成true:

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

标题名称:SAPUI5应用入口App.controller.js是如何被UI5框架加载的?
文章URL:http://kswjz.com/article/jhiics.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流