我使用过滤器编写了一个简单的i18n本地化函数,但是应用过滤器时会有延迟。在应用过滤器和交换文本之前,用户将很快看到“ {{'formTitle'| i18n}}”。有什么办法解决吗?
这是代码示例,非常简单且相当普遍:
<label for="person_title">{{'formTitle' | i18n}}</label>
angular.module('localization')
.value('localizedTexts', {
'formTitle': 'Titre '
});
angular.module('localization', [])
.filter('i18n', ['localizedTexts', function (localizedTexts) {
return function (text) {
if (localizedTexts.hasOwnProperty(text)) {
return localizedTexts[text];
}
return text;
};
考虑使用ng-cloak
。引用自the AngularJS doc:
[当浏览器加载此CSS规则时,所有html元素(包括他们的孩子)被ng-cloak指令标记的隐藏。当Angular在模板的编译会删除ngCloak元素属性,使已编译的元素可见。
您也可能对angular-translate-http://pascalprecht.github.io/angular-translate/]感兴趣>