天天看點

[Angularjs]視圖和路由(三)

上篇文章主要介紹了路由中when方法的第二個參數,常見的幾個屬性,以及作用。本篇文章,将介紹和路由相關的幾個常見的服務。

<a href="http://www.cnblogs.com/wolf-sun/p/4614532.html">[angularjs]ng-select和ng-options</a>

<a href="http://www.cnblogs.com/wolf-sun/p/4620150.html">[angularjs]ng-show和ng-hide</a>

<a href="http://www.cnblogs.com/wolf-sun/p/4621854.html">[angularjs]視圖和路由(一)</a>

<a href="http://www.cnblogs.com/wolf-sun/p/4638029.html">[angularjs]視圖和路由(二)</a>

有這樣一種情況,在設計路由的時候,我們希望在路由上面傳遞參數,但是當跳轉到指定的路由的時候,我們該如何接收呢?這就用到$routeparams這個指令。傳遞的參數,angularjs會将它解析出來并傳遞給$routeparams。

一個例子

這個例子的大概意思就是,根據name查詢使用者資訊。

當通路這樣的路由是#/user/wolfy,angularjs會在$routeparams中添加一個名為name的鍵,它的值會被設定為加載進來的url中的值。比如這裡,$routeparams對象看起來回事這樣的:

需要注意,如果想要在控制器中通路這些變量,需要把$routeparams注入到控制器:

angularjs提供了一個服務用以解析位址欄中的url,并讓你可以通路應用目前路徑所對應的路由。它同樣提供了修改路徑和處理各種形式導航的能力。

$location服務對javasrcipt中的window.location對象的api進行了更優雅地封裝,并且或angularjs繼承在一起。

當應用需要在内部進行跳轉時是使用$location服務的最佳場景,比如當使用者注冊後,修改或者登入後進行的跳轉。

$location服務沒有重新整理整個頁面的能力。如果需要重新整理整個頁面,需要使用$window.location對象(window.location的一個接口).

path()

修改目前路徑并跳轉到應用中的另一個url,該方法參數為空時是擷取url,傳遞路由時是修改url:

path()方法直接和html5的曆史api進行互動,是以使用者可通過點選後退按鈕退回到上一個頁面。

replace()

如果你希望跳轉後使用者不能點選後退按鈕(對于登入之後的跳轉這種發生在某個跳轉之後的再次跳轉很有用),angularjs提供了replace()方法來實作這個功能:

[Angularjs]視圖和路由(三)
[Angularjs]視圖和路由(三)

absurl()

absurl()方法用來回去編碼後的完整url。

hash()

hash()方法用來回去url中的hash片段:

host()

該方法用來回去url中的主機:

port()

該方法用來擷取url中的端口号:

protocol()

該方法用來擷取url中的協定:

search()

該方法用來擷取url中的查詢串:

我們可以想這個方法中傳入新的查詢參數,來修改url中的查詢串部分:

search方法可以接收兩個參數:

search(可選,字元串或對象):這個參數待辦新的念書。hash對象的值可以是數組。

paramvalue(可選,字元串):如果search參數的類型是字元串,那麼paramvalue會作為該參數的值覆寫url當中的對應值。如果paramvalue的值為null,對應的參數會被移除掉。

用search方法擷取參數,可以這樣:

url()

該方法用來擷取目前頁面的url:

如果調用url()方法時傳了參數,會設定并修改目前的url,這會同時修改url中的路徑、查詢串和hash,并傳回$location.

url()方法可以接收兩個參數:

url(可選,字元串):新的url的基礎的字首。

replace(可選,字元串):想要修改成的路徑。

 在目前的項目中用到比較多的是$routeparams和$location.path(),擷取傳遞的參數,在使用者完成某個操作時,進行修改路由跳轉到新的templateurl。并在ng-view占位的地方進行渲染。

文章來自

angularjs權威教程 

部落格位址:

<a href="http://www.cnblogs.com/wolf-sun">http://www.cnblogs.com/wolf-sun/</a>

部落格版權:

本文以學習、研究和分享為主,歡迎轉載,但必須在文章頁面明顯位置給出原文連接配接。

如果文中有不妥或者錯誤的地方還望高手的你指出,以免誤人子弟。如果覺得本文對你有所幫助不如【推薦】一下!如果你有更好的建議,不如留言一起讨論,共同進步!

再次感謝您耐心的讀完本篇文章。http://www.cnblogs.com/wolf-sun/p/4640725.html

繼續閱讀