Angular Translate не работает с $ location.path в AngularJS - PullRequest
0 голосов
/ 05 июня 2019

У меня есть веб-приложение AngularJS 1.0.7. Для переводов я использую Angular Translate (это старая версия, которая совместима с моей угловой версией, но переводы изначально работают). Я сожалею, что в данный момент не могу перейти на более новую версию, так что это не решение.

У меня странная проблема. На домашней странице у меня есть две ссылки на одну и ту же страницу B (скажем так). Но одна - это реальная ссылка, а другая - кнопка, которая выполняет функцию с перенаправлением с $ location.path (page-b) на страницу B.

обертоны / home.html:

<a href="/:language/about">Link without location.path</a>
<button ng-click="test()">Redirection with location.path</button>

Домашний контроллер:

$translatePartialLoader.addPart('common');
        $translatePartialLoader.addPart('home');                
        $translate.refresh().then(function() {
            // do whatever
        });

$scope.test = function() {
            $location.path('localhost/:language/about');
        };

Страница B (about.html):

Hello {{var1}}

Страница B имеет контроллер, который загружает некоторые json-файлы частичного перевода в угловом переводе, например:

AboutCtrl

$translatePartialLoader.addPart('about');
$translate.refresh().then(function(result) {
    $scope.var1 = $translate('LABEL');              
});

По какой-то причине, когда я нажимаю на ссылку на домашней странице или нахожусь на странице и перезагружаю ее, переводы прекрасно работают, и я вижу их. Я имею в виду переводы работают. Но если я нажму кнопку, которая перенаправляет на страницу с $ location.path, перевод не будет работать. Я имею в виду, только он не работает в сценарии, когда новая страница загружается с $ location .path.

Пожалуйста, найдите этот плункер: https://plnkr.co/edit/Mys8HBfC9pShkiXudMIy?p=preview,, что я не могу заставить его работать с частичными, но это хорошо для лучшего понимания структуры.

Пожалуйста, дайте мне знать, если вы что-то упустили.

Если я не ошибаюсь, эта проблема очень похожа или точно такова: https://github.com/angular-translate/angular-translate/issues/306, но, если честно, в настоящий момент я не могу найти обходной путь.

...