翻译控制器内的对象

时间:2016-03-17 17:59:47

标签: angularjs angularjs-directive

我是angularjs的新手。 我正在制作一个使用angularjs和Ng tags input的应用程序。

一切都很好,但我无法翻译绑定到ng标签输入的来源。

这是我的代码:

<tags-input ng-model="tags"
            add-on-paste="true">
   <auto-complete source="Fruits"></auto-complete>
</tags-input>

在我的控制器中,我有:

var app = angular.module('at', ['pascalprecht.translate']);

app.config(function ($translateProvider) {
$translateProvider.translations('en', {
     PINE_APPLE: 'Pine apple',
     LEMON : 'Lemon',
     TOMATO: 'Tomato'
});

$translateProvider.preferredLanguage('en');
});

app.controller('Ctrl', function ($scope, $translate) {
$scope.Fruits = [
{
    text: 'TOMATO',
    value: 1
},
{
    text: 'PINE_APPLE',
    value: 2
},  
{
    text: 'LEMON',
    value: 3
}];

$scope.changeLanguage = function (key) {
   $translate.use(key);
   };
});

我的问题是:如何在Ctrl控制器中翻译我的水果以绑定到ng标签输入?

有人能帮帮我吗? 谢谢。

2 个答案:

答案 0 :(得分:2)

要将文本翻译成JSON对象,您可以尝试翻译文本,然后使用这些翻译文本创建对象。

var app = angular.module('at', ['pascalprecht.translate']);

app.config(function ($translateProvider) {
$translateProvider.translations('en', {
     TOMATO: 'Tomato'
});

$translateProvider.preferredLanguage('en');
});

app.controller('Ctrl', function ($scope, $translate) {

var TEXT_TRANSLATED = $translate.instant('TOMATO'); //NEW LINE

$scope.Fruits = [
{
    text: TEXT_TRANSLATED,
    value: 1
}
];

我希望你觉得它很有用!

答案 1 :(得分:0)

谢谢你,juvian 最后,我试图按照你的说法应用ng-tag输入的自定义模板,并且它与动态翻译一起使用。