我在AngularJS应用程序中使用angular-translate for i18n.
对于每个应用程序视图,都有一个专用控制器.在下面的控制器中,我将值设置为页面标题.
<h1>{{ pageTitle }}</h1>
Run Code Online (Sandbox Code Playgroud)
.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';
}])
Run Code Online (Sandbox Code Playgroud)
我正在使用angular-translate-loader-url扩展名加载翻译文件.
在初始页面加载时,将显示翻译键,而不是该键的翻译.翻译是Hello, World!,但我看到了HELLO_WORLD.
我第二次去页面,一切都很好,并显示翻译版本.
我假设问题与控制器分配值时可能尚未加载转换文件的事实有关$scope.pageTitle.
使用<h1>{{ pageTitle | translate }}</h1>和时$scope.pageTitle = 'HELLO_WORLD';,翻译工作从第一次起完美.这个问题是我并不总是想要使用翻译(例如,对于第二个控制器,我只想传递一个原始字符串).
这是一个已知的问题/限制吗?怎么解决这个问题?