У меня проблемы с обновлением фильтра локализации. Когда файл загружен, представление не обновляется. Я пробовал $scope.$apply()
и $filter("localization")(localizationService.text)
, ни один не работает.
localizationService:
angular
.module("myApp")
.factory("localizationService", function () {
var service = {
text: null,
language: "en"
};
return service;
});
фильтр локализации:
angular
.module("myApp")
.filter("localization", function(localizationService) {
return function (value) {
if (localizationService.text && localizationService.text.hasOwnProperty(value)) {
return localizationService.text[value];
}
return value;
}
});
контроллер автоматически обновляет файл для использования:
$scope.$watch(function () {
return $location.path();
}, function () {
var fileName = "../Localizations/" + $location.path().substring(1) + "/localization-" + localizationService.language + ".json";
$http.get(fileName).then(function (response) {
localizationService.text = response.data;
//$filter("localization")(localizationService.text);
//$scope.$apply();
});
});
localization-ru.json:
{
"test": "this is working !"
}
HTML:
<div>{{'test' | localization}}</div>
Это код пишет test
вместо this is working !
.
Как я могу это исправить?