У меня есть веб-приложение 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, но, если честно, в настоящий момент я не могу найти обходной путь.