Фильтр не обновляется

У меня проблемы с обновлением фильтра локализации. Когда файл загружен, представление не обновляется. Я пробовал $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 !.

Как я могу это исправить?

8
задан Elfayer 17 November 2015 в 08:15
поделиться