我在 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';
,翻译从第一次开始就完美无缺。问题在于我并不总是想使用翻译(例如,对于第二个控制器,我只想传递一个原始字符串)。
问题
这是一个已知问题/限制吗?如何解决这个问题?