2016-03-01 59 views
1
app.directive('myDirective',function() { 
    return { 
     restrict : 'A', 
     templateUrl : 'app/html.html' 
     }; 
}); 

我遇到了模板html獲取緩存在Internet Explorer中的問題。每次更改html時,都需要執行以下任一操作來加載新模板:AngularJS templateUrl沒有得到刷新,總是使用緩存版本

  1. 刪除瀏覽歷史記錄並清除臨時Internet文件。
  2. 更改瀏覽器設置「檢查新版本存儲頁的」從自動到「每次訪問」

類似的問題表述Here。標記的答案很有效,但是在考慮是否有更好的解決方案來解決問題,而不是擊敗瀏覽器緩存。

回答

1

你必須每次更新後使用的應用程序版本,並增加:

<html data-ver="1.0"> 

而在你的js代碼:

// for example: read app version from data-ver attribute on html tag 
window.appVersion = angular.element(document.getElementsByTagName('html')).attr('data-ver'); 

app.directive('myDirective',function() { 
    return { 
     restrict : 'A', 
     templateUrl : 'app/html.html?v=' + window.appVersion 
     }; 
}); 
+0

難道沒有任何其他辦法,而不是使用快取清除URL參數?我想避免更改所有指令聲明 –

+0

您也可以使用$ templateCache – MBN