Как скормить Angular динамические данные из Ajax.jquery?

Собственно в процессе создания локализации на angular столкнулся с проблемой следующего характера:
При валидации и пользовательских действиях сервер отдает ответ через ajax
var ajaxSettings = {
                type: method,
                url: action,
                data: $form.serialize()
            };

Локализация
var app = angular.module('translation', ['ngResource','ngCookies']);

app.controller('language', ['$scope', '$cookies', 'translationService',

    function ($scope, $cookies, translationService) {

        //Выполняем перевод, если произошло событие смены языка
        $scope.translate = function (langKey) {
            translationService.getTranslation($scope, langKey);
            $cookies.loc_language = langKey;
        };
        var $cur_lang = $cookies.loc_language;
        if ($cur_lang == null) {
            $scope.translate('ru');
        } else {
            $scope.translate($cur_lang);
        }
}]);

app.service('translationService', function ($resource) {

    this.getTranslation = function ($scope, language) {
        var languageFilePath = 'lang/translation_' + language + '.json';
        console.log(languageFilePath);
        $resource(languageFilePath).get(function (data) {
            $scope.translation = data;
        });
    };

});

Ответ от сервера приходит следующего вида {{translation.ENTER_LOGIN}} и соответственно не переводится. Я так понял что нужно копать в сторону databinding, прочитал про apply, watch, compile, пытался по разному их использовать, но старания были тщетны и роковая фраза отказывалась быть переведенной. Прошу помощи!
  • Вопрос задан
  • 2500 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
Это что касается компиляции и использования шаблонов "на лету"
codepen.io/AMar4enko/pen/azvEXw

В остальном много вопросов по архитектуре например, что делает $scope.translate в контроллере, зачем в целом нужен контроллер language и.т.д.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы