精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Titanium TiMVC框架:介紹與使用

移動開發(fā)
Titanium本身已做得很不錯了,所以網(wǎng)上也已有一些優(yōu)秀的MVC框架和插件等,不過試了下,感覺比較好用的就是一個叫TiMVC的框架,這個在官方market上就有,可以免費下載。

這段時間一有空就都在研究Titanium的MVC框架,因為幾個項目做下來,發(fā)現(xiàn)一套好的框架實在是很重要,所以這也成為了當(dāng)務(wù)之急!

Titanium本身已做得很不錯了,所以網(wǎng)上也已有一些優(yōu)秀的MVC框架和插件等,不過試了下,感覺比較好用的就是一個叫TiMVC的框架,這個在官方market上就有,可以免費下載:http://timvc.com/

之所以選擇這個框架,是因為發(fā)現(xiàn)其架構(gòu)清晰,有非常具體的MVC層次,使用起來方便,上手容易,而且更重要的是經(jīng)過上真機(jī)測試也沒什么問題,對2個系統(tǒng)(ios&android)的兼容性也比較好。由于官方網(wǎng)站上并沒有詳細(xì)的使用說明,只是簡單地例出了層次目錄和文件是什么,所以具體使用和功能我也只有直接查看其源碼,經(jīng)過對其源碼越深入的分析,就越感覺其用起來挺順手,呵呵~~

要學(xué)習(xí)一個框架,先要搞清楚的是其整體架構(gòu),以下就是整個TiMVC的項目結(jié)構(gòu):

TiMVC結(jié)構(gòu)

上圖可以看到在MVC目錄下的層次結(jié)構(gòu)是比較清楚的:

assets:這個是資源文件目錄,包括圖片和數(shù)據(jù)庫文件的存放。

components:這個是組件目錄,包括框架里的核心組件,一般不需修改這里的文件。

controllers:控制器目錄,包含了項目里所需用到的控制器,根據(jù)需要自己創(chuàng)建。

core:此為框架核心文件目錄,其他目錄的代碼均要以此為中心啦,呵呵。

models:數(shù)據(jù)模型目錄,主要是與數(shù)據(jù)庫交互的實體類的操作。

views:視圖目錄,里面每個子目錄均對應(yīng)一個控制器名稱,子目錄里的文件就是具體的action了。

OK,介紹完層次結(jié)構(gòu)后,就說說其原理和使用。MVC的原理就不需我多說啦,如果不了解MVC模式的話,可上google看看。首先說一下此框架的配置,打開app.js文件就可以看到一大堆配置信息,這也是我喜歡使用它的原因之一,可以有很靈活的配置選項,非常方便哦!

不過不得不說的是,雖然其配置項不少,但基本上都不需要去更改的,大部分是框架路徑的配置,所以如果只用其默認(rèn)這些配置,一般來說其實意義不是很大,我之所以使用它,就是因為我可以對這些配置信息進(jìn)行擴(kuò)展,以達(dá)到真正方便控制整個項目流程的效果,這個在以后的文章中我會慢慢介紹.現(xiàn)在說一下框架的運(yùn)行流程和使用吧。核心代碼分析暫且不說,直接打開controller目錄下的main.js文件,這個是主要的入口文件,其是繼承components/controller.js文件的,在main.js里定義了一個action—home:

  1. this.home = function(r){ 
  2.         //build table data to be used in table ui 
  3.         var list = []; 
  4.         list.push({title:"Tab Example",route:"example/tabgroup",request:{},hasChild:true,newWindow:false,height:self.App.util.dP(50)}); 
  5.         if(self.App.iPhone){ 
  6.             list.push({title:"iPhone Only Dashboard Example",route:"example/dashboard",request:{},hasChild:true,newWindow:true,height:self.App.util.dP(50)}); 
  7.         } 
  8.         list.push({title:"Multi-Dashboard Example",route:"example/multidashboard",request:{},hasChild:true,newWindow:true,height:self.App.util.dP(50)}); 
  9.         list.push({title:"Database Example",route:"example/database",request:{message:'Hello from the database!'},hasChild:true,newWindow:true,height:self.App.util.dP(50)}); 
  10.  
  11.         //render /mvc/views/main/home.js view file with data 
  12.         self.render('home',{"list":list}); 

在home里主要是創(chuàng)建了一個list的數(shù)組,然后存放了相關(guān)的數(shù)據(jù)信息,每一條數(shù)據(jù)就是一個導(dǎo)航信息,包括標(biāo)題,路由,請求數(shù)據(jù)等,最后一句是重點,直接render到名字為home的view里,同時將整個list數(shù)據(jù)傳遞過去。然后我們再打開views/main/home.js文件,其他代碼先不需理會,主要看:

  1. this.addContent = function(){ 
  2.         self.rootView = Titanium.UI.createTableView({ 
  3.             data:self.data.list 
  4.         }); 
  5.         self.rootView.addEventListener('click',function(e){ 
  6.             if(e.rowData.newWindow){ 
  7.                 self.App.loadRoute(e.rowData.title,e.rowData.route,e.rowData.request); 
  8.             }else{ 
  9.                 self.App.setWindowRoute(e.rowData.route,e.rowData.request); 
  10.                 self.App.routeWindow(); 
  11.             } 
  12.         }); 

這段是為當(dāng)前視圖添加相關(guān)的UI代碼,所有view里都以一個rootView為基礎(chǔ),因此要在view里創(chuàng)建界面,就要先創(chuàng)建一個self.rootView對象,然后將所有東西都放到這個view里來。而通過self.data.list,就可以獲取之前controller傳過來的list數(shù)據(jù)了,這個名字就與controller里寫的一致。

因為以上代碼創(chuàng)建的是一個TableView,所以在其點擊事件里就可以直接調(diào)用list的數(shù)據(jù)了。這里用到了此MVC的幾個核心方法:

  1. /** 
  2. * Execute controller call via route. 
  3. * @param {String} title new window title 
  4. * @param {String} route controller/action route string 
  5. * @param {Object} data json data to be passed to route (new window) 
  6. */ 
  7. this.loadRoute = function(title,route,data); 

這個是加載路由的方法,即可跳轉(zhuǎn)到另一個action,再通過action跳轉(zhuǎn)到另一個view界面,同時可以設(shè)置下一界面的標(biāo)題和數(shù)據(jù),數(shù)據(jù)是JSON格式。

  1. /** 
  2. * Update current window with route and request object (stringified) 
  3. * @param {String} route 
  4. * @param {Object} request 
  5. * @private 
  6. */ 
  7. this.setWindowRoute = function(route,request); 

以上是設(shè)置當(dāng)前窗口的路由信息和傳遞的數(shù)據(jù),一般設(shè)置完后再調(diào)用以下方法進(jìn)行跳轉(zhuǎn):

  1. /** 
  2. * Route window to requested controller and action 
  3. * @private 
  4. * @returns boolean on fail 
  5. */ 
  6. this.routeWindow = function(); 

運(yùn)行項目后,首先看到的將是home里的TableView視圖,同時點擊里面項目的話,就會根據(jù)所設(shè)置list里的數(shù)據(jù)跳轉(zhuǎn)到不同的視圖頁面了。以上代碼就簡單演示了一個頁面的跳轉(zhuǎn)過程。

除了控制器到視圖的跳轉(zhuǎn)外,其實還可以動態(tài)調(diào)用不同頁面的layout,在控制器里,可以調(diào)用以下方法以設(shè)置不同的layout:

  1. /** 
  2. * Set Layout string 
  3. * @param {String} set layout name string 
  4. */ 
  5. this.setLayout = function(layoutName); 

這個layout又是如何用的呢?只要打開views/layouts/default.js就可以看到默認(rèn)的layout代碼,通過不同的layout設(shè)置,我們可以方便地定義不同頁面的結(jié)構(gòu),如所有頁面都要包含headerandfooter等,就可以在layout里設(shè)置,原理和一般的MVC框架差不多(.NET或者cakephp里就有l(wèi)ayout的概念了)

最后再總結(jié)下一些基本用法:

1.要在控制器或者視圖調(diào)用核心方法,都必須以self.App開頭,其實self就是等于this,至于有什么核心方法,大家打開core/timvc.js文件就知道了。

2.在控制器里跳到相應(yīng)的view,使用self.render(viewName,{“data”:data});

3.路由跳轉(zhuǎn)只需在view里調(diào)用self.App.loadRoute(title,controller/action,data);

4.可通過setLayout使用views/layouts目錄下不同的頁面結(jié)構(gòu)

OK,今天就先說到這,關(guān)于此框架的研究和加強(qiáng),我打算在之后文章里再慢慢介紹,也希望大家多多捧場[[67872]]

最后大家可到以下2個地址下載此框架:

http://timvc.com

https://github.com/deboorn/TiMVC

責(zé)任編輯:佚名 來源: coderblog.in
相關(guān)推薦

2012-04-19 13:52:16

TitaniumMVCRedux

2012-04-19 14:16:22

TitaniumTiMVC

2012-04-20 11:07:12

Titanium

2012-04-19 16:22:12

TitaniumTabGroup

2012-05-17 09:09:05

Titanium單元測試

2012-04-19 12:58:26

TitaniumJSS

2022-11-25 07:59:02

SpringJava

2012-05-18 11:34:03

Titaniumcons

2012-05-18 11:29:55

Titaniumpros

2012-02-13 14:41:50

Titanium架構(gòu)分析

2014-05-15 09:43:11

CloudaMobile WebANodejs

2011-07-05 17:29:56

2012-04-19 17:42:46

Titanium布局

2012-04-19 10:52:52

2011-06-22 13:27:04

QT QMap

2012-02-01 09:59:05

TitaniumPhoneGapiOS

2009-12-22 16:10:21

ADO.NET框架

2009-06-22 16:24:33

JSF框架中使用的設(shè)計

2012-04-19 16:17:24

TitaniumAndroidtabbar

2012-04-19 16:55:48

Titanium視頻jQuery Mobi
點贊
收藏

51CTO技術(shù)棧公眾號

成人中文字幕在线| 国产在线日韩| 欧美一级xxx| 777777av| 色多多视频在线观看| 成人在线视频一区| 国产精品久久久久久久久久新婚| 在线免费观看亚洲视频| 国产午夜一区| 亚洲国产三级网| 福利视频999| 欧美黑人疯狂性受xxxxx野外| 亚洲欧美色一区| 免费国产一区二区| 亚洲成人av综合| 精品伊人久久久久7777人| 国产69精品久久久久9| 99热这里只有精品4| 欧美三级午夜理伦三级小说| 欧美一区二区视频网站| 欧美午夜性生活| 热色播在线视频| 一区二区三区影院| 日本免费在线视频观看| 国产中文在线观看| 91蜜桃在线观看| 国产99午夜精品一区二区三区| 一区二区三区午夜| 奇米精品一区二区三区在线观看一| 午夜精品久久久久久久男人的天堂 | 亚洲精品欧美二区三区中文字幕| 麻豆91av| 天堂91在线| 99亚偷拍自图区亚洲| 99精彩视频| 国产免费黄色片| 麻豆国产精品视频| 国产精品黄色影片导航在线观看| 7799精品视频天天看| 亚洲日本久久| 久久久久中文字幕2018| 欧美日韩在线观看成人| 欧美二区视频| 欧美日韩国产999| 国产av无码专区亚洲av毛网站| 四季av一区二区凹凸精品| 中文字幕在线视频日韩| 公肉吊粗大爽色翁浪妇视频| 欧州一区二区| 中文字幕亚洲激情| 国产高清视频免费在线观看| 婷婷综合久久| 久久亚洲欧美日韩精品专区 | 韩国欧美一区| 欧美黑人xxxx| 日本熟妇毛茸茸丰满| 伊人久久亚洲热| 91精品国产91久久久久久最新| 日韩av女优在线观看| 亚洲精品字幕| 日本高清视频精品| 中文字幕av久久爽| 激情深爱一区二区| av在线不卡一区| 人人妻人人玩人人澡人人爽| 91女厕偷拍女厕偷拍高清| 久久婷婷人人澡人人喊人人爽| 色鬼7777久久| 中日韩av电影| 国产一级黄色录像片| 国产第一页在线| 欧美性感美女h网站在线观看免费| 免费在线观看的毛片| 色综合久久久| 亚洲国产成人爱av在线播放| 成人乱码一区二区三区av| 精品久久综合| 麻豆国产精品va在线观看不卡 | 99视频一区| 日韩av电影在线免费播放| 中文字幕在线视频免费| 国产伦精品一区二区三区在线观看| 国产精品白丝jk白祙| 偷拍自拍在线| **欧美大码日韩| 男人插女人视频在线观看| 成人欧美magnet| 欧美区一区二区三区| www.啪啪.com| 日韩精品免费| 97香蕉超级碰碰久久免费的优势| 在线免费一级片| 国产69精品久久777的优势| 欧美精品一区二区三区在线四季| 在线观看二区| 亚洲a一区二区| 婷婷免费在线观看| 欧美aaaaa级| 久久九九热免费视频| 中文字幕第15页| 国产麻豆成人精品| 日本一区二区不卡高清更新| 欧美黑人猛交| 欧美日韩国产区一| www.色多多| 欧美国产91| 国产精品美女视频网站| 亚洲区小说区图片区| 亚洲欧美日韩系列| 少妇激情一区二区三区| 久久99国产精品久久99大师| 最近2019年中文视频免费在线观看| 国产在线综合网| 美国一区二区三区在线播放 | av一区二区在线看| 免费av网站在线观看| 色综合色狠狠天天综合色| 久久精品无码一区二区三区毛片| 欧美精品一二| 日韩av片电影专区| 污污的视频网站在线观看| 亚洲欧美电影院| 人人干人人干人人| 欧美中文字幕一区二区| 日本电影亚洲天堂| 亚洲 国产 欧美 日韩| 亚洲线精品一区二区三区| 亚洲第一区第二区第三区| 精品视频网站| 国产国语刺激对白av不卡| 天堂av中文在线资源库| 午夜视频一区二区| 天天躁日日躁狠狠躁免费麻豆| 91精品国产91久久综合| 91久久国产综合久久91精品网站| 福利在线播放| 欧美探花视频资源| 国产不卡在线观看视频| 日韩精品免费专区| 日本一区二区在线| 先锋欧美三级| 中文字幕欧美国内| 国产又粗又黄又爽的视频| 国产精品无码永久免费888| 精品少妇无遮挡毛片| 欧美色网址大全| 国产欧美精品xxxx另类| av在线首页| 欧美久久久一区| 免费在线观看a级片| 国产在线视频一区二区三区| 国产系列第一页| 日本高清精品| 国内精品久久久久伊人av| 国模无码一区二区三区| 欧美日韩国产麻豆| 天天躁日日躁aaaa视频| 美美哒免费高清在线观看视频一区二区 | 欧美午夜精品一区二区| 亚洲国产网站| 久久av一区二区三区亚洲| 粉嫩一区二区三区| 日韩在线观看网站| av综合在线观看| 亚洲图片自拍偷拍| 亚洲精品成人无码| 激情欧美一区二区| 欧美乱做爰xxxⅹ久久久| 欧美亚洲色图校园春色| 国产精品美女网站| 羞羞视频在线免费国产| 日韩成人在线网站| 中文字幕在线观看免费| 亚洲一区视频在线观看视频| 中文字幕日韩三级片| 美日韩一区二区三区| 成人免费看片视频在线观看| 久久天天躁狠狠躁夜夜av| 国产视频精品网| 九色porny自拍视频在线观看| 亚洲人成77777在线观看网| 天天爱天天做天天爽| 国产精品欧美久久久久一区二区| 国产又黄又嫩又滑又白| 亚洲一区二区三区免费在线观看| 午夜精品一区二区三区在线观看| 国产午夜亚洲精品一级在线| 日韩激情视频在线观看| 99久久久精品| 蜜桃传媒视频麻豆一区| 精品亚洲a∨| 久久人人爽人人爽人人片av高清| 手机亚洲第一页| 91精品国产综合久久久久久久| 欧美亚洲伦理www| 精品资源在线看| 日韩欧美在线网站| 最近免费中文字幕大全免费版视频| 《视频一区视频二区| av在线播放网址| 激情成人午夜视频| 久久久噜噜噜www成人网| 一个色综合网| 欧美精品一区二区三区四区五区| 欧美视频二区欧美影视| 国产精品久久久| caoporn视频在线| 久久久国产精品亚洲一区| 免费在线观看一级毛片| 日韩欧美一区二区三区在线| 波多野结衣视频观看| 亚洲国产日产av| 99热6这里只有精品| 久久久精品日韩欧美| 苍井空张开腿实干12次| 国产在线精品一区在线观看麻豆| 久久无码高潮喷水| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲精品成人a8198a| 米奇777超碰欧美日韩亚洲| 99久久自偷自偷国产精品不卡| 欧美黄页免费| 国产精品夜色7777狼人| japanese23hdxxxx日韩| 午夜精品久久久久久久99热浪潮| aa在线视频| 久久精品国产96久久久香蕉| 午夜看片在线免费| 亚洲天堂第二页| 青青草视频在线观看| 亚洲国产成人av在线| 亚洲av无码国产精品永久一区| 欧美日本一区二区在线观看| 国产精品第6页| 在线看一区二区| 精品国产乱子伦| 在线观看亚洲精品| 欧美一级黄视频| 欧美私人免费视频| 日韩xxx视频| 欧美日韩小视频| 中文字幕一二区| 成人在线黄色| 亚洲综合丝袜美腿| 少妇精品无码一区二区免费视频 | www.男人天堂| 白白色 亚洲乱淫| 午夜av免费看| 91麻豆视频网站| av电影在线不卡| 国产精品美女久久久久久 | 亚洲一级电影视频| 国产精品99re| 欧美性jizz18性欧美| 香蕉污视频在线观看| 欧美视频在线不卡| 一区二区日韩视频| 日韩一级视频免费观看在线| 黄频在线免费观看| 精品丝袜一区二区三区| 噜噜噜在线观看播放视频| 中文字幕欧美精品在线| av超碰免费在线| 91国产视频在线| 欧美性理论片在线观看片免费| 国产精品网红直播| 榴莲视频成人app| 国产精品日韩一区二区免费视频| 日韩av系列| 亚洲精品tv久久久久久久久| 欧美黄在线观看| 欧美v在线观看| 久久er精品视频| 色悠悠在线视频| 国产亚洲欧美日韩俺去了| 天海翼在线视频| 天天综合色天天综合色h| 成人一级免费视频| 日韩女优av电影在线观看| 欧美日韩在线精品一区二区三区激情综 | 国产精品一区二区三区久久久| 久久国产精品美女| 久久久福利视频| 1024精品久久久久久久久| 波多野结衣家庭教师在线| 美国欧美日韩国产在线播放| 久久久久久久人妻无码中文字幕爆| 国产欧美综合在线| 久草视频手机在线观看| 欧美午夜片在线看| 日本激情视频网站| 久久色免费在线视频| 国产夫妻在线| 亚洲最大福利视频网| 国产99久久| 久久男人资源站| 蜜桃av一区二区| 成人精品在线观看视频| 亚洲另类在线视频| 少妇又紧又色又爽又刺激视频 | 亚洲一本视频| 男生操女生视频在线观看| 91丨porny丨在线| 免费在线观看黄视频| 在线成人小视频| 免费在线国产| 韩国国内大量揄拍精品视频| www.久久99| 水蜜桃亚洲一二三四在线| 99精品热6080yy久久| 337p日本欧洲亚洲大胆张筱雨| 国产精品日韩成人| 日韩精品一区二区亚洲av| 精品国产一区二区亚洲人成毛片 | 午夜电影一区二区三区| 99在线小视频| 日韩亚洲国产中文字幕| 韩国成人在线| 日韩福利一区二区三区| 亚洲一区日韩| 国产精品久久久免费观看| 亚洲国产精品自拍| www.成人免费视频| 久久伊人精品一区二区三区| 日本午夜免费一区二区| 日韩美女一区| 日本免费新一区视频| 国产亚洲精品熟女国产成人| 色婷婷亚洲精品| 日本一卡二卡四卡精品| 欧美在线视频网| 欧亚精品一区| 欧美视频在线播放一区| 91香蕉视频mp4| 91精品国产综合久久久蜜臀九色| 亚洲精品成人免费| 欧美激情20| 欧美精品成人一区二区在线观看| 免费亚洲视频| 亚欧洲乱码视频| 91福利国产精品| 99re在线视频| 成人黄色av免费在线观看| 香蕉视频国产精品| 午夜性福利视频| 亚洲成人av在线电影| 男人天堂手机在线观看| 国产91成人在在线播放| 亚洲精品小区久久久久久| 黄色一级大片在线观看| 国产免费成人在线视频| 一区二区三区黄色片| 久久99亚洲精品| 欧美成人午夜77777| 免费裸体美女网站| 中文字幕亚洲精品在线观看| av在线亚洲天堂| 97久久精品人搡人人玩| 亚洲影院天堂中文av色| 99热手机在线| 亚洲欧美日韩成人高清在线一区| 亚洲h视频在线观看| 2020久久国产精品| 色狮一区二区三区四区视频| 午夜不卡福利视频| 亚洲第一成人在线| 久久久pmvav| 91免费看片在线| 日韩午夜黄色| 亚洲一二三四五六区| 丝袜美腿亚洲一区二区图片| 久久天天躁夜夜躁狠狠躁2022| 黄色av电影网站| 日本不卡二三区| 欧美一区二区三区在线看| 在线观看国产网站| 成人丝袜18视频在线观看| 狠狠色噜噜狠狠狠狠色吗综合| 丝袜国产在线| 久草热8精品视频在线观看| 国产高清自拍视频| 欧美片在线播放| mm视频在线视频| 亚洲一区高清| 不卡一区二区三区四区| 中文字幕制服诱惑| 久久免费少妇高潮久久精品99| 精品一区欧美| 青青草原播放器| 91久久免费观看| xxxx在线视频| 亚洲一区二区三区精品在线观看 | 91久久精品国产91久久性色| 一区二区日韩免费看| 东方av正在进入| 欲色天天网综合久久| 国产精品毛片视频| 免费成人黄色大片| 色婷婷精品大在线视频| 国产丝袜精品丝袜|