Angular 路由初識
阿新 • • 發佈:2019-01-03
Routes:根元件注入RouterOutlet:放在app.component.html,作為路由指定顯示位置的指令Router:component中用RouterLink:template HTML中用ActivatedRoute:component.ts中獲取路由引數等問題:進入首頁點選“產品”點選“商品詳情”回到首頁點選“產品”,可以看到路由變化,但是頁面ID沒有變化**這是因為,每次回到主頁再進入詳情頁,是詳情頁每次重繪的過程,都會走init方法但是從詳情頁到詳情頁,init只走了一次,不會重繪ID,所以有以上問題。解決辦法就是引數訂閱subscribe訂閱就是,每次值有改變都會重新接收,重新繪製路由重定向
app-routing.modules.ts父路由template,注意寫法,是 ./ 開頭
分三步 輔助路由:不依附任何元件,可以獨立其他元件存在(例如聊天模組,一個網站任何頁面都可以觸發彈出聊天功能,)
通過一些鉤子實現,即 路由守衛
程式碼:建立守衛檔案ts實現對應方法,指定守衛條件:在路由配置模組中,引入守衛ts檔案,配置相應屬性到指定元件上:注意provider注入:resolve守衛:當進到一個頁面,需要請求資料繫結頁面,這時初始狀態會有繫結位置都是空的狀態的情況,resolve就是解決這個問題,預先讀取資料,帶著讀取的資料再跟路由一起跳過來。
注意裝飾器
app-routing.modules.ts父路由template,注意寫法,是 ./ 開頭
分三步
- 在app template主路由插座之後定義輔助路由插座,必須有name屬性,值隨便
- 在app routing模組中定義路由,新增outlet屬性,對應輔助路由插座的name屬性值,定義元件顯示位置
- 跳轉路由時,在routerLink中,通過 outlets物件,指定輔助路由跳轉的元件,注意對應輔助路由name屬性值
- routerLink,第一個陣列元素指定主路由
- outlets物件新增primary屬性指定主路由
通過一些鉤子實現,即 路由守衛
程式碼:建立守衛檔案ts實現對應方法,指定守衛條件:在路由配置模組中,引入守衛ts檔案,配置相應屬性到指定元件上:注意provider注入:resolve守衛:當進到一個頁面,需要請求資料繫結頁面,這時初始狀態會有繫結位置都是空的狀態的情況,resolve就是解決這個問題,預先讀取資料,帶著讀取的資料再跟路由一起跳過來。
注意裝飾器