【发布时间】:2013-12-30 17:01:21
【问题描述】:
我在 AngularJS 应用程序中为 i18n 使用 angular-translate。
对于每个应用程序视图,都有一个专用控制器。在下面的控制器中,我将值设置为显示为页面标题。
代码
HTML
<h1>{{ pageTitle }}</h1>
JavaScript
.controller('FirstPageCtrl', ['$scope', '$filter', function ($scope, $filter) {
$scope.pageTitle = $filter('translate')('HELLO_WORLD');
}])
.controller('SecondPageCtrl', ['$scope', '$filter', function ($scope, $filter) {
$scope.pageTitle = 'Second page title';
}])
我正在使用 angular-translate-loader-url 扩展名加载翻译文件。
问题
在初始页面加载时,会显示翻译键而不是该键的翻译。翻译是Hello, World!,但我看到的是HELLO_WORLD。
第二次进入页面,一切正常,显示翻译版本。
我认为问题与控制器将值分配给$scope.pageTitle 时可能尚未加载翻译文件有关。
备注
使用<h1>{{ pageTitle | translate }}</h1> 和$scope.pageTitle = 'HELLO_WORLD'; 时,翻译从第一次开始就完美无缺。这样做的问题是我并不总是想使用翻译(例如,对于第二个控制器,我只想传递一个原始字符串)。
问题
这是一个已知问题/限制吗?怎么解决?
【问题讨论】:
标签: javascript angularjs angular-translate