我已按如下方式设置了translateProvider:
angular.module('app')
.config(['$translateProvider', function($translateProvider){
$translateProvider.translations('en', {
'HELLO' : 'Hello'
});
$translateProvider.translation('de', {
'HELLO' : 'Hallo'
});
$translateProvider.prefferedLanguage('en');
}])
我可以使用带有过滤器的表达式在HTML中翻译字符串,如:
{{ 'HELLO' | translate }}
显示'Hello'(或'Hallo',具体取决于首选语言设置)。
如何在Javascript中使用该过滤器,比方说,在控制器中?
我目前的做法不起作用:
angular.module('app')
.controller('ExampleController', [ '$scope', '$translate'], function($scope, $translate){
$scope.obj = {
translatedString = $translate('HELLO')
};
});
因为它显示[object Object]而不是'HELLO'的翻译。
答案 0 :(得分:0)
$ translate是异步的,它返回promise而不是翻译的字符串,因此它可以像这样使用:
$translate('HEADLINE_TEXT').then(function (translation) {
$scope.translatedText = translation;
});
更多信息https://angular-translate.github.io/docs/#/api/pascalprecht.translate.$translate