Я хочу иметь функцию-оболочку для этого $translate
сервиса: https://angular -translate.github.io / docs / # / guide / 03_using-translate-service , чтобы мы могли использовать эти функциилегко в нашем коде, вызвав $ language.translate ('ключевое слово') вместо обещания.
Итак, я создаю новый сервис в своем приложении, который должен выполнять эту работу.Это очень простая функция, но она возвращает undefined
или [Object Object]
.
angularApp.factory("$language", ['$translate', function($translate){
function trans(keyword){
console.log("translate in $language", keyword);
return $translate(keyword).then(function(msg) {
console.log("translation successfull", msg);
return msg;
}, function(translationId){
console.log("translation is not known", translationId);
return translationId
})
}
return {
translate : trans
}
}]);
В обоих случаях, когда перевод известен или нет, console.log()
показывает мне правильную строку, но на моей страницеон показывает [объект объекта] или не определен (когда я удаляю первый return
прямо перед $translate(keyword)
. Когда я использую фильтр, например {{:: "KEYWORD" | translate}}
, он работает нормально.
Как я могу позволить моей функции возвращатьстрока с translation или translationId (который фактически совпадает с ключевым словом, когда перевод не найден)?