Я использую angular-translate для i18n в приложении AngularJS.
Для каждого вида приложения есть выделенный контроллер. В приведенных ниже контроллерах я устанавливаю значение, которое будет отображаться как заголовок страницы.
код
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';
, перевод работает отлично с первого раза. Проблема в том, что я не всегда хочу использовать переводы (например, для второго контроллера я просто хочу передать необработанную строку).
Вопрос
Является ли это известной проблемой/ограничением? Как это можно решить?