Я хочу иметь функцию-оболочку вокруг этой службы $translate
: https://angular-translate.github.io/docs/#/guide/03_using-translate-service, поэтому мы можем легко использовать эти функции в нашем коде, вызывая $language.translate('keyword') вместо обещания .
Итак, я создаю новую службу в своем приложении, которая должна выполнять эту работу. Это очень простая функция, но она возвращает 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()
показывает мне правильную строку, но на моей странице показывает [object object] или undefined (когда я удаляю первый return
прямо перед $translate(keyword)
. Когда я использую фильтр типа {{:: "KEYWORD" | translate}}
, он работает отлично.
Как я могу позволить моей функции возвращать строку с переводом или translationId (который на самом деле совпадает с ключевым словом, когда перевод не найден)?