跟我extjs5(03--在项目过程中加载文件)


上一节中用sencha工具自己主动创建了一个项目。而且能够在浏览器中查看。

如今我们来看看js类载入过程。

例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

  1. 1、首先:浏览器中输入 localhost:1841 ,调用 index.html;
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5.  
  6. <title>app</title>
  7.  
  8. <!-- The line below must be kept intact for Sencha Cmd to build your application -->
  9. <script id="microloader" type="text/javascript" src="bootstrap.js"></script>
  10.  
  11. </head>
  12. <body></body>
  13. </html>

在这里面仅仅引入了一个文件:bootstrap.js。这是一个奇妙的文件,他依据配置文件bootstrap.json来设置extjs的类的调用路径、引入css,最后再依据配置文件里的信息,载入app.js。

这个文件仅仅要知道这些功能即可了,要了解详细的内部实现,能够去搜索一下相关文章。

2、app.js文件的说明

  1. Ext.application({
  2. name: 'app',//应用的名称app
  3.  
  4. extend: 'app.Application', //继承自app.Application,这个文件是 app/Application.js
  5.  
  6. autoCreateViewport: 'app.view.main.Main' //自己主动创建的Viewport的类名,文件在 app/view/main/Main.js
  7.  
  8. });

上面的类中会依据类载入的设置信息,自己主动为类 app.Application载入文件 /app/Application.js,相同也为app.view.main.Main类找到js文件并载入。

3、Application.js文件

  1. Ext.define('app.Application', {
  2. extend : 'Ext.app.Application',
  3.  
  4. name : 'app',
  5. views : [], // MVC用到的view
  6. controllers : ['Root'
  7. // MVC控制器的名称,会自己主动到 /app/controller下去载入同名的js文件
  8. // 对于Root,会去自己主动载入 /app/Controller/Root.js 这个文件
  9. ],
  10. stores : [],
  11. launch : function() {
  12. // 须要运行的语句能够加在此处
  13. }
  14. });

4、Main.js 文件

  1. Ext.define('app.view.main.Main', {
  2. extend: 'Ext.container.Container',
  3.  
  4. xtype: 'app-main',
  5.  
  6. controller: 'main',
  7. //MVVM架构的控制器的名称,会在当前路径中依据‘Main’ + Controller 来确定文件名称
  8. //这个我没找到其它不论什么能够自己主动载入MainController.js的依据,仅仅能作上面的推断了
  9. viewModel: {
  10. type: 'main'
  11. //MVVM架构的viewModel的类型,会在当前路径中依据‘Main’ + Model 来确定文件名称
  12. },
  13.  
  14. layout: {
  15. type: 'border' //系统的主页面的布局
  16. },
  17.  
  18. items: [{
  19. xtype: 'panel',
  20. bind: {
  21. title: '{name}'
  22. },
  23. region: 'west', //左边面板
  24. html: '<ul><li>This area is commonly used for navigation, for example, using a "tree" component.</li></ul>',
  25. width: 250,
  26. split: true,
  27. tbar: [{
  28. text: 'Button',
  29. handler: 'onClickButton'
  30. }]
  31. },{
  32. region: 'center', //中间面版
  33. xtype: 'tabpanel',
  34. items:[{
  35. title: 'Tab 1',
  36. html: '<h2>Content appropriate for the current navigation.</h2>'
  37. }]
  38. }]
  39. });

上面的类是继承自Container的一个容器类,这个类使用了extjs5的mvvm的新特性,

  1. controller: 'main',
  2. //MVVM架构的控制器的名称,会在当前路径中依据‘Main’ + Controller 来确定文件名称
  3. //这个我没找到其它不论什么能够自己主动载入MainController.js的依据。仅仅能作上面的推断了
  4. viewModel: {
  5. type: 'main'
  6. //MVVM架构的viewModel的类型,会在当前路径中依据‘Main’ + Model 来确定文件名称
  7. },

上面的属性controller表示当前Main类的控制器为"main",这个类里没有引用控制器的语句。因此控制器的类名可能是有其默认的载入规则。应该是在当前路径中载入“Main”+"Controller.js",这个文件作为控制器。

viewModel属性定义了VM的类型,其载入类的规则和上面控制器是一样的。

因为此类是作为一个 autoCreateViewport 属性被载入,载入完毕后会马上生成一个实例,并渲染,就是我们看到的网页。

extjs中类的动态载入机制非常灵活,这里也不能所有讲到,有不明确的能够查找相关资料。在用sencha cmd 对js 进行编译以后,会将所有的js ,书面和包含用户手册extjs5 sdk用类都在同一个文件。当它目前只发行了一大js文件。

跟我extjs5(03--在项目过程中加载文件)的更多相关文章

  1. vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法

    原先本地项目版本(4.0.0.1)高于服务器版本(4.0.0.0),本地项目改成服务器版本4.0.0.0时,发布后的项目报这个错误

  2. Bug,项目过程中的重要数据

    作者|孙敏 为什么要做Bug分析? Bug是项目过程中的一个有价值的虫子,它不只是给开发的,而是开给整个项目组的. 通过Bug我们能获得什么? 积累测试方法,增强QA的测试能力,提升产品质量 发现项目 ...

  3. VS2017 MVC项目,新建控制器提示未能加载文件或程序集“Dapper.Contrib解决方法

    VS2017中MVC项目中,右键新建控制器时,提示 未能加载文件或程序集“Dapper.Contrib, Version=1.50.0.0, Culture=neutral, PublicKeyTok ...

  4. “System.BadImageFormatException”类型的未经处理的异常在 PurchaseDevices.Access.dll 中发生 其他信息: 未能加载文件或程序集“System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确

    引用sqlite的程序集时,有时会报如下异常:  "System.BadImageFormatException"类型的未经处理的异常在 PurchaseDevices.Acces ...

  5. MVC开发中的常见错误-01未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。

    错误信息:未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或 ...

  6. vs2015 项目调试出现未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    今天在调试项目不知道怎么了,突然就报未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 HRESULT:0x80131040) ...

  7. MyBatis Java不同方式加载文件时的路径格式问题、Mybatis中加载.properties文件

    public class LoadPropTest { public static void main(String[] args) throws IOException { //一.Properti ...

  8. 无法加载文件 **.ps1,系统中禁止执行脚本

    控制台执行命令后出现 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing" 在控制台执行命令: s ...

  9. SAP HANA项目过程中优化分析以及可行性验证

    在项目开发过程中,经常会遇到HANA模型运行效率的问题: 以我们项目为例,HANA平台要求模型运行时间不能超过10秒,但是在大数量和计算逻辑复杂的情况下(例如:ERP中的BKPF和BSEG量表的年数据 ...

随机推荐

  1. How to convert `ctime` to `datetime` in Python? - Stack Overflow

    How to convert `ctime` to `datetime` in Python? - Stack Overflow How to convert `ctime` to `datetime ...

  2. Android真机网络adb联机调试初探

    新项目是一个基于android4.2设备.刚拿到demo板时就对联机互调感兴趣了.处于以前在S3c2440上对linux的移植使用经验.心里猜测对于android设备应该也这样.所以通过搜索资料整理如 ...

  3. Jquery节点遍历

    jquery 节点遍历 <html> <head> <title></title> <script src="Jquery/jquery ...

  4. linux进程通信之信号

    本节主要学习信号和与信号相关的处理函数,兴许还会更新. http://blog.csdn.net/xiaoliangsky/article/details/40264151 一 信号 信号是UNIX和 ...

  5. nagios二次开发(五岁以下儿童)---nagios和nagiosql关系

    基于nagios和nagiosql理解.这将是这两个梳理比较粗糙的简单关系,有关详细信息,请参阅下面的图如:      从上面的关系图中能够看出,nagios与nagiosql共享了主机.主机组.服务 ...

  6. 每天一个JavaScript实例-递归实现反转数组字符串

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. linux编程进阶书推荐APUE,UNP

    编程进阶这里强烈推荐<unix环境高级编程>(简称APUE)和<unix网络编程>(简称UNP),这两本书可是经典中的经典啊,作 者是大名鼎鼎的 W.Richard Steve ...

  8. pig中使用的一些实例语法

    在pig中, dump和store会分别完毕两个MR, 不会一起进行 1:载入名用正則表達式: LOAD '/user/wizad/data/wizad/raw/2014-0{6,7-0,7-1,7- ...

  9. js实现的侧边栏展开收缩效果

    原文地址:http://www.softwhy.com/forum.php?mod=viewthread&tid=12246 <!DOCTYPE html> <html> ...

  10. 微信简单Demo

    新建一个WxHandler.ashx public class WxHandler : IHttpHandler { public static string Msg; public void Pro ...