Titanium TiMVC功能扩展:添加第三方类库的使用

移动开发
在上一篇文章《Titanium MVC框架:介绍与使用》中介绍了 TiMVC 的基本结构和使用,虽然此框架整体上来说已比较清晰完善了,但在实际使用中,其配置选项感觉有些鸡肋,因为这些配置一般都不需更改。

现在我介绍的就是如何自己添加需要的配置,如本篇将介绍的是如何方便地将第三方类库整合到此框架中使用,最终目的是只需在config里添加一个新的类库名称就可以自动加载,然后在框架的控制器、视图和模块里任意调用 :cool: 

先看看我们最终要实现的效果,如我要添加一个 underscore.js 和 redux.js 2个类库到框架中,那么只需在配置里添加以下代码:

  1. /** 
  2. * Vendor folder path 
  3. * @type String 
  4. */ 
  5. vendorPath : "mvc/vendor/", 
  6.  
  7. /** 
  8. * Load vendor 
  9. * @type array 
  10. */ 
  11. loadVendor : [{ 
  12.      name : "underscore" 
  13. },{ 
  14.      name : "redux" 
  15. }], 

 以上我将第三方类库都放到 mvc/vendor目录下,然后要将2个类库引用到项目中,这时只需填写类库文件名即可,这样配置的话就可以非常方便地引入不同的类库了 :biggrin: 。接下来就看看如何实现吧:

要实现以上配置,就需要修改核心文件 core/timvc.js ,其实只需在此文件里添加以下代码:

  1. /** 
  2.     * Load vendor from file by name 
  3.     * @param {String} name vendor name based on vendor path in config (usally /mvc/vendor) 
  4.     * @returns boolean with load status 
  5.     */ 
  6.    this.loadVendor = function(name) { 
  7.        if(name == null) { 
  8.            //load all vendor with config 
  9.            for(var i = 0, v = self.config.loadVendor.length; i < v; i++) { 
  10.                var path = self.config.vendorPath + self.config.loadVendor[i].name + ".js"; 
  11.                self.debug('path:' + path); 
  12.                var r = self.includeFile(path); 
  13.                if(!r) 
  14.                    return false; 
  15.            } 
  16.        } else { 
  17.            //load vendor by name 
  18.            var path = self.config.vendorPath + name + ".js"; 
  19.            var r = self.includeFile(path); 
  20.        } 
  21.        return true; 
  22.    } 

以上方法就是加载配置目录中所需要的类库文件,代码很简单,我就不多说了 :tongue: ,***一步就是将此方法放到 components/controller.js 的 setApp 方法里调用就可以了,因为这个 setApp 方法是所有页面加载前调用的,至于为什么要放到 controller而不直接放到 timvc.js 里的 _init,这个是因为每当新的页面或者控制器加载时,其应该都是独立运行的,如果放到 timvc.js 里的话,就只有项目启动时才加载一次,如果跳到另一个页面的话,就会失效了,因此放到所有 controller的父页面,让所有都继承它就能保证让所有页面都能生效。以下是具体代码:

  1. /** 
  2. * Set Appliation Class Reference 
  3. * @param {TiMVC} set main app TiMVC class refernce used by TiMVC 
  4. */ 
  5. this.setApp = function(a){ 
  6.     self.App = a
  7.     self.App.loadVendor(); 

OK,至此就完成了,然后你就可以直接在项目中使用类库的代码了 :biggrin:

责任编辑:佚名 来源: coderblog.in
相关推荐

2012-04-19 13:52:16

TitaniumMVCRedux

2014-07-22 10:56:45

Android Stu第三方类库

2013-08-14 09:50:32

iOS类库

2019-07-30 11:35:54

AndroidRetrofit

2015-11-05 16:44:37

第三方登陆android源码

2022-01-14 09:57:14

鸿蒙HarmonyOS应用

2009-11-25 17:19:58

桌面软件Chrome第三方扩展

2012-04-19 13:55:19

TitaniumTiMVC

2010-05-25 11:09:31

SVN工具

2017-12-11 15:53:56

2014-07-23 08:55:42

iOSFMDB

2021-10-11 06:38:52

Go开源库语言

2022-05-21 23:56:16

Python库搜索Python

2013-01-15 13:50:22

iOS开发开源库

2010-03-03 15:10:49

第三方Python库

2013-11-08 09:15:39

ChromeWindows

2022-06-06 07:50:55

PythonJSON

2014-08-13 10:27:23

CocoaPods

2011-07-25 14:14:49

iPhone SQLITE Pldatabase

2013-12-24 16:58:28

搜狐
点赞
收藏

51CTO技术栈公众号