angularjs – 如何使用translation-cloak修复Angular-translate FOUC问题?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何使用translation-cloak修复Angular-translate FOUC问题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在第一次加载时出现文本闪烁的问题.

我尝试了我在互联网上找到的所有解决方案,但没有一个能够工作……

我的angular-translate版本是最新的2.4.2.

这是HTML示例:

<!DOCTYPE html>
<html ng-app="testapp">
<head>
    <title translate-cloak>{{ 'page.appName' | translate }}</title>
    <base href="/">
    <Meta charset="utf-8">
    <link rel="icon" type="image/ico" href="static/favicon.ico"/>
    <link rel="stylesheet" href="stylesheets/style.css"/>
</head>
<body>
<div>
    <ul>
        <li>
            <div>
                <a href="/"><strong translate-cloak>{{ 'page.appName' | translate }}</strong></a>
            </div>
        </li>
    </ul>
</div>
<div ng-view></div>
<script src="javascripts/angular.js"></script>
<script src="javascripts/angular-translate.js"></script>
<script src="javascripts/angular-translate-loader-url.js"></script>
<script src="javascripts/angular-translate-loader-static-files.js"></script>
<script src="javascripts/angular-translate-storage-local.js"></script>
<script src="javascripts/test.js"></script>
</body>
</html>

这是JavaScript:

angular.module('testapp',['ngRoute','ngResource','ngCookies','ngTable','mgcrea.ngStrap','pascalprecht.translate'])
        .config(['$locationProvider','$routeProvider','$httpProvider','$translateProvider',function ($locationProvider,$routeProvider,$httpProvider,$translateProvider) {
                $locationProvider.html5Mode(true);
                $routeProvider.when('/',{
                    templateUrl: 'views/main.html'
                }).otherwise({
                    redirectTo: '/'
                });
$translateProvider.useSanitizeValueStrategy('escaped').useLocalStorage().useStaticFilesLoader({
                    prefix: 'static/languages/',suffix: '.json'
                }).use('en-EN');
            }
        ]);

解决方法

您需要在$translateProvider配置中提供翻译并将其定义为首选语言.

The documentation call this FOUC(未翻译内容的Flash).

我也试验过,当我在translate-cloak中添加一个值时,比如translate-cloak =“any”,.translate-cloak类被添加标签中,但是当我只放入translate-cloak时,.translate-cloak isn’补充说.

请记住,您需要设置.translate-cloak类的样式.

猜你在找的Angularjs相关文章