2014-02-18 52 views
0

我沒有使用Angular視圖或路由器。簡單的ng-include。我可以用ng-include(用dummy div初始化模板)和從服務器獲取模板並更新templateCache之後設置和更新它。 問題是大多數時間模板沒有更新。 另外我想讓用戶看到模板,如果用戶有權限。權限將在服務器上進行檢查。angularjs模板緩存延遲加載權限

達到此目的的最佳方法是什麼?

回答

0

我發現從以下link

// CacheTemplate剋星下述溶液。 // //在緩存中成功路由更改(請參見後面的內容)//清除之前的頁面模板 //如應用程序發送另一個請求到 //服務器接着有機會切入訪問 - //用戶/會話 $ scope.tC = $ templateCache;

$rootScope.$on('$routeChangeSuccess', function(event, next, current) { 
     switch($location.path()) { 
      case '/login' : 
       $window.document.title = "LOGIN"; 
       $scope.loggedIn = false; 
       break; 
      case '/home' : 
       $window.document.title = "HOME"; 
       $scope.loggedIn = true; 
       break; 
      default: 
       $window.document.title = ""; 
       $scope.loggedIn = false; 
       break; 
     }; 

     // clear cache to trigger reloading 
     // (server decides if has permission or not) 
     if (current && current.$route) { 
      if ($scope.tC.get(current.$route.templateUrl)) { 
       $scope.tC.remove(current.$route.templateUrl); 
      }; 
     }; 
    }); 
    ...