成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

整合jQuery Mobile+AngularJs 經(jīng)驗談

開發(fā) 前端
兩者都是不錯的JS編程框架,但是各自用途不同,像jQuery Mobile提供了不錯的圖形空間,以及依賴于jQuery本身,提供了不少空間操作的API,Angular沒有啥控件,但是是一個很好的JS的MVC框架,以及提供了空間的數(shù)據(jù)綁定功能。

兩者都是不錯的JS編程框架,但是各自用途不同

1. jQuery Mobile提供了不錯的圖形空間,以及依賴于jQuery本身,提供了不少空間操作的API

2. Angular沒有啥控件,但是是一個很好的JS的MVC框架,以及提供了空間的數(shù)據(jù)綁定功能。

 

于是,開始有些開源的項目把兩者整合在一起,比如

https://github.com/opitzconsulting/jquery-mobile-angular-adapter

但是有了這個adapter,兩者就可以很好的工作了么,NO。有些問題,比如 兩者page加載方式是不一樣的,對于每個page, Angular是導(dǎo)航的使用route在需要的時候把page片段加載到瀏覽器的,URL類似于http://angular.github.io/angular-phonecat/step-7/app/#/phones/motorola-xoom-with-wi-fi,注意在#后面才是真正的資源地址,然后初始化資源對應(yīng)的controller,這樣你可以初始化顯示數(shù)據(jù)。然后jQuery Mobile是需要一次性把所有page都加載到客戶端。這樣子的話,如果如果在jQuery Mobile中你為每個page定義一個angular的controller,那么初始化你的angular controller的時候頁面還未顯示

我們需要一個設(shè)計實現(xiàn),為每個jQuery Mobile Page定義一個Angular的controller,每個controller完成對應(yīng)的page的數(shù)據(jù)綁定,如何實現(xiàn)

1. 頁面開發(fā)使用jQuery Mobile, 我們?yōu)閞oot body定義一個root的angular controller比如<body ng-controller="AppCtrl">

2. 導(dǎo)航問題:導(dǎo)航使用jQuery Mobile的$.mobile.changePage而不使用angular的route,因為頁面使用的jQuery Mobile寫的。頁面導(dǎo)航除了切換page,最重要的一點是初始化頁面數(shù)據(jù),而因為在jQuery mobile下面,在頁面加載階段所有的controller都初始化了,你只能導(dǎo)航時在root controller里再去重新刷新顯示頁面的綁定數(shù)據(jù),這樣要求所有頁面的綁定數(shù)據(jù)需要在root controller里面定義,按照angular的規(guī)則,所有的子controller都會繼承這些數(shù)據(jù)定義。定義的時候***使用結(jié)構(gòu)而不是用primary type,這樣子controller可以直接飲用,比如定義一個shop的數(shù)據(jù)結(jié)構(gòu)

  1. $scope.shop&nbsp;=&nbsp;{};  
  2. $scope.shop.catelogs&nbsp;=&nbsp;null;  
  3. $scope.shop.advices&nbsp;=&nbsp;[];  
  4. $scope.shop.child&nbsp;=&nbsp;[];  
  5. $scope.shop.products&nbsp;=&nbsp;[]; 

3. 我往往會個導(dǎo)航定義一個單獨的控制器,使用它初始化page controller,比如

  1. angular  
  2. .module(  
  3. 'ngPageNav',  
  4. [],  
  5. [  
  6. '$provide',  
  7. function($provide)&nbsp;{  
  8. $provide  
  9. .factory(  
  10. 'ngPageNavigator',  
  11. [  
  12. '$http',  
  13. function($http)&nbsp;{  
  14. function&nbsp;nav($scope,  
  15. $http,&nbsp;action,  
  16. data,  
  17. ignoreStack)&nbsp;{  
  18. .....  
  19. }  
  20. return&nbsp;{  
  21. nav&nbsp;:&nbsp;nav,  
  22. back&nbsp;:&nbsp;back  
  23. };  
  24. &nbsp;  
  25. }  
  26. }&nbsp;]); 

} ]).value('name', 'ngPageNav');
 

3. 你調(diào)用$.mobile.changePage往往頁面綁定數(shù)據(jù)變了,但是頁面不會刷新page頁面,最簡單的處理方式是往后臺send 一個dummy的請求。

4. 如果你在打開你的jQuery Mobile的時候需要直接切換到某個page,請在你的root controller里面監(jiān)聽jqmInit

  1. $scope.$on("jqmInit",function() {   
  2.  
  3. }  

原文鏈接:http://my.oschina.net/trumanspace/blog/207449

責(zé)任編輯:林師授 來源: oschina
相關(guān)推薦

2011-09-09 09:50:40

Oracle

2010-12-09 13:15:31

數(shù)據(jù)中心虛擬化整合

2024-05-28 07:01:29

2009-09-14 15:04:44

2011-06-21 16:26:19

SEO內(nèi)部優(yōu)化

2011-08-15 10:27:48

2013-08-02 11:23:45

2009-06-29 15:39:53

Servlet和JSPServlet引擎

2012-07-13 14:25:59

2017-01-20 09:43:12

日志告警挖掘

2015-09-16 10:13:16

游戲性能

2010-08-17 13:23:49

2009-11-02 11:11:07

VB.NET OOP設(shè)

2012-06-18 10:59:12

WEB開發(fā)項目

2015-09-23 14:01:51

2009-08-03 10:13:13

開發(fā)框架

2009-08-07 17:38:08

C#無詞尾符號

2009-10-29 09:40:35

VB.NET Text

2009-07-11 10:30:17

綜合布線工作體會

2009-07-02 11:49:44

JSP學(xué)習(xí)步驟
點贊
收藏

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

主站蜘蛛池模板: 一区二区三区国产好的精 | 亚洲激情专区 | 免费观看一级特黄欧美大片 | 亚洲色图网址 | 国产欧美在线视频 | 午夜欧美 | 日本不卡视频在线播放 | a级大毛片 | 国产一区免费 | 亚洲精品一区二三区不卡 | 国产激情一区二区三区 | 成人毛片网 | 一区二区亚洲 | 宅男噜噜噜66一区二区 | 亚洲三级在线观看 | 97人人澡人人爽91综合色 | 91精品久久久久久久久久入口 | 日韩一区二区三区av | 亚洲精品美女视频 | 日韩视频一区二区三区 | 99久久婷婷国产精品综合 | 亚洲国产成人av好男人在线观看 | 国产精品一级 | 色综合天天天天做夜夜夜夜做 | 日韩成人影院 | 亚洲精品电影网在线观看 | 欧美一级毛片在线播放 | 久久成人精品 | 国产福利在线播放 | av大片在线观看 | 久久久久久久久久久久亚洲 | 四虎影视在线 | 国产精品一区在线观看 | 国产a视频 | 亚洲精品视频播放 | 日韩看片 | 国产伊人精品 | 国产一级在线观看 | 亚洲三级av | 在线视频一区二区 | 超碰成人在线观看 |