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

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

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

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

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

这个注释写的比较清楚,如果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

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

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

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

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

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

最新文章

  1. C# 断点续传原理与实现
  2. javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation:
  3. ADF_Advanced ADF系列1_Fusion应用的客制和个性化(Part1)
  4. svn版本控制器在vs2013中的使用
  5. boa安装
  6. Oracle的一些命令
  7. iOS 错误之 NSObject 、CGFloat
  8. NEO学习笔记,从WIF到地址
  9. laravel5.8笔记八:数据库(单库和多库)
  10. 记工作中用到的抓取oracle表结构的sql语句
  11. java 偏向锁,轻量锁,重量级锁
  12. linux下配置java环境
  13. TOJ 2130: Permutation Recovery(思维+vector的使用)
  14. C#项目 学生选课系统 C#窗口 Winform项目 项目源码及使用说明
  15. IE8 input X 去掉文本框的叉叉和密码输入框的眼睛图标
  16. python 星号*使用方法
  17. python学习(十六) 测试
  18. React进阶篇(2) -- Redux
  19. oracle+110个常用函数
  20. sql 指删除表,改表名,改字段名

热门文章

  1. 阶段5 3.微服务项目【学成在线】_day18 用户授权_15-细粒度授权-我的课程细粒度授权-实现
  2. Web登录验证之 Shiro
  3. python登录项目
  4. js获取当前页面的url地址
  5. Laravel 别名Redis 与 Redis 扩展冲突
  6. 第十九章 动态URL权限控制——《跟我学Shiro》
  7. self-attention详解
  8. Hbuilder连接苹果手机
  9. Java基础---Java 开发工具IntelliJ IDEA 安装
  10. jenkins sonarqube 代码检测部署