1. 程式人生 > >angular.js 路由及頁面傳參與快取

angular.js 路由及頁面傳參與快取

1、在controller中注入$state

2、語法:$state.Go("目標路由",{},{reload:true})

3、在目標路由(router)中配置cache:false(禁用快取)

所以,整體工作不是很難,無非就是頁面的佈局,不過ionic提供了一套UI,可以很方便的佈局到這個程度。

但是,當我佈局好,介面也連線上以後,測試才發現有些地方有延遲,就像這樣:

這個過程這樣解釋:

  • 點選“我的”進入個人中心
  • 我沒有登入,展示的是未登入頁面,點選登入
  • 進入登入頁面,輸入使用者名稱密碼並登入成功,返回主頁面
  • 點選“我的”,顯示的還是未登入頁面!

所以現在問題出來了,在第四步的時候,應該進入的是個人頁面,而非未登入狀態。

html程式碼如下:

  1. <div class="my_buttons" ng-if="noLogin">
  2. <div class="row">
  3. <a ng-href="#/login">登入</a>
  4. <a ng-href="#/register">註冊</a>
  5. </div>
  6. </div>
  7. <div class="my_photo" ng-if="!noLogin">
  8. <a ng-href="/#/my/{{user.id}}">
  9. <div class="login_logo">
  10. <img src="http://120.24.218.56/static/images/users/{{user.profilePhotoId}}" alt="">
  11. <p ng-bind="user.username"></p>
  12. </div>
  13. </a>
  14. </div>

先說一下最終的解決方法吧,解決方法就是在路由中,進入該頁面時,禁止頁面快取。程式碼如下:

  1. //個人中心
  2. .state('my',{
  3. url:'/my',
  4. cache:'false',
  5. templateUrl:'templates/my.html',
  6. controller:'MyController'
  7. })

知識點解析:快取