angular入門系列教程3


主題:

本篇主要目的就是繼續完善home頁,增加tab導航的三個頁index index1 index2

效果圖:

 

細節:

初始化的JS就是咱們的home.js,仔細來看。

angular的route模塊是單獨出來的,所以可以看到,在咱們的home/index.html文件中,在head里自然是要加上"../lib/angular-1.2.7/angular-route.js"的JS的。

僅僅這樣還是不可以的,因為route是單獨的一個模塊,所以在咱們實例化app模塊的時候,需要在依賴的模塊列表中加上route的module名“ngRoute”,也就是在home.js中:

可以看到咱們還依賴了homeControllers,稍后咱們說明。

 

下面就是route的使用了,實例化的模塊app有一個config的方法,通過它可以在app跑起來之前做一些配置性工作,而咱們的路由設置什么的就是在config中完成的。

config支持依賴注入的,但是只能providers 和 constants是可以被注入進去的。這里咱們需要將$routeProvider和$locationProvider注入進去;$routeProvider是針對於route配置的provider,$locationProvider相應的就是配置location相關的了,這里咱們把$locationProvider一進來的目的主要是我希望的是在高級瀏覽器上是以html5Mode更改URL,並且針對於IE8 9 這樣的不支持的設置hashPrefix為“!”(默認html5Mode是false hashPrefix是'')。

到這里咱們還沒有進行route的配置呢,下面看:

這種配置方式用起來很爽,$routeProvider的規則詳見官網,這里咱們用到了templateUrl和controller;templateUrl很好理解,當路由匹配的時候,去使用那個模板(模板是會被緩存住的,詳見templateCache),controller當然是針對於這個view的控制器了,這里為了方便管理,咱們把所有的home的controller全部集中起來用homeControllers這個模塊來管理,這也就是咱們前面說的在初始化app模塊的時候,在依賴模塊列表中加入homeControllers這個模塊名的原因。

 

下面就一起來簡單看下homeController中的東西:

由於目前沒什么功能,所以這里只是簡單的定義一個homeControllers,然后通過他的controller方法定義一堆controller。

到這里還有一個問題,那就是怎么去切換tab的時候,讓每一個tab的classname跟着改變,也就是去改變顯示的狀態,看代碼:

可以看到,咱們在routescope上監聽了$routeChangeSuccess事件,當路由change完成的時候,咱們就去更改$rootScope.path的值,而在home/index.html中

咱們在每一個li上利用ng-class指令,判斷path是那種狀態,然后去改變class的。

結束語:

這里,咱們可以看到,咱們的app已經能進行簡單的路由導航了,下篇繼續。

本篇源碼:https://github.com/dolymood/angular-example/tree/ls_3

歡迎吐槽


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM