2015-08-08 50 views
0

我的$ routeProvider

.when('/student/tn/:Id', { 
      controller: 'transactioNoteCtrl', 
      templateUrl: function (e) { 
       return '/student/TransactionNotes/' + e.Id; 
      }, 
      title: "Student's Transaction and Note" 
     }) 

要刪除緩存我用過,

MakeApp.run(['$rootScope', '$templateCache', function ($rootScope, $templateCache) { 
    $rootScope.$on('$routeChangeStart', function (event, next, current) { 
     alert(current.templateUrl); 
     if (typeof (current) !== 'undefined') { 
      $templateCache.remove(current.templateUrl); 
     } 
    }); 

}]); 

問題是,當templateUrl包含函數$ templateCache.remove()不管用。另外,由於UI Bootsrap模塊,我無法使用removeAll()。

+0

'current.templateUrl'在你的alert中有什麼值? – ilmgb

+0

函數(e){ return'/ student/TransactionNotes /'+ e.Id; } – AKASH

+0

需要首先刪除它的用例是什麼?好像你正在服務器上創建動態模板。應該不需要隨模板請求一起發送一個id。我的猜測是你的應用程序中有一個設計缺陷 – charlietfl

回答

0

我有我的臨時解決方案。 我使用全局變量

var turl = ""; 

,現在我的$ routeProvider就像

.when('/student/tn/:Id', { 
       controller: 'transactioNoteCtrl', 
       templateUrl: function (e) { 
       turl = '/student/TransactionNotes/' + e.Id; 
       return turl; 
       }, 
       title: "Student's Transaction and Note" 
      }) 

,並刪除緩存我用過,

MakeApp.run(['$rootScope', '$templateCache', function ($rootScope, $templateCache) { 
    $rootScope.$on('$routeChangeStart', function (event, next, current) { 
     alert(current.templateUrl); 
     if (typeof (current) !== 'undefined') { 
      $templateCache.remove(current.templateUrl); 
      $templateCache.remove(turl); 
     } 
    }); 

}]); 

這解決了我的問題。謝謝..