我的应用程序有一个非常基础的用例,前端使用 AngularJS (1.0.8),后端使用 Grails。在应用程序布局中,我有一个语言切换器,允许用户更改语言。切换语言时,它会进行新的 http 请求来检索页面。Grails 渲染所有与语言相关的内容(即标签)以便进行正确翻译。这只适用于 Chrome、FF 等浏览器,但不适用于 IE。IE 只为由主请求渲染的布局呈现正确的语言。
我找到了问题所在。我定义了 $routeProvider
,其中加载了大部分应用程序内容。默认情况下,它被缓存,因此 IE 不会加载 $routeProvider
的 templateUrl
,因为它们是从缓存中加载的:
myApp.config(function ($routeProvider) {
$routeProvider.
when('/', {controller: 'MyCtrl', templateUrl: '/eshop/myConfig'})
});
我不明白的是为什么它在其他所有浏览器中都可以运行。 我找到了一些关于如何清除缓存的帖子,但它们对我没有用。有没有解决方案?如果没有,我发现$routeProvider对我的用例完全无用。 我找到的帖子:
$http
缓存。 - musically_ut