"10 $digets() итераций достигнуто" при попытке $http.post() из обработчика ошибок ng-translate

Мы используем угловой перевод для локализации веб-сайта, используя наш собственный загрузчик, который получает переводы с сервера. На стороне сервера у нас есть логика, которая обрабатывает отсутствующие ключи перевода, так что мы оба возвращаем что-то (перевод с запасного языка или самого ключа) и сообщаем системе, что ключ был запрошен (так что он отображается в пользовательском интерфейсе перевода). в другом месте на сайте). Сейчас я борюсь за создание чего-то похожего на стороне клиента.

$translateProvider есть метод useMissingTranslationHandler(factory) который мы успешно настроили, чтобы просто выйти из системы, если в консоли отсутствует ключ, используя следующее:

app.config(function ($translateProvider) {
    $translateProvider.useMissingTranslationHandler('translationMissingHandler');
});

app.factory('translationMissingHandler', translationMissingHandler);

translationMissingHandler.$inject = ['$window', '$log', '$http'];
function translationMissingHandler($window, $log, $http) {
    return function (translationId) {
        var culture = $window.preferredCulture, // workaround for another problem
            errorInfo = {
                key: translationId,
                culture: culture
            };
        $log.warning('Translation missing:', errorInfo);
        // $http.post('/api/v2/localization/missing', errorInfo);
    }
}

Однако тогда я раскомментирую POST на сервер, уведомляющий о пропущенном ключе, страница висит на строке 14394 angular.js - throw e, где e.message является

[$rootScope:infdig] Достигнуто 10 итераций $digest(). Aborting! Наблюдатели уволены за последние 5 итераций: []

Я пробовал разные вещи, чтобы обойти это - например, завершение вызова $http.post() в $timeout или же $rootScope.$apply но безрезультатно; Я все еще получаю то же сообщение об ошибке.

Есть ли способ запланировать звонок $http.post() отсюда, не вызывая эту ошибку? Если так, то как?

0 ответов

Другие вопросы по тегам