来自https://angular-translate.github.io/docs/#/guide/06_variable-replacement
假设:
{
"MESSAGE": "{{value}} is something.",
"ANOTHER_KEY": "Anything"
}
我该怎么做:
$translate('MESSAGE', { value: 'ANOTHER_KEY' });
所以" ANOTHER_KEY"得到翻译,我最终得到了#34;任何东西都是"?
我试图在我的控制器中执行此操作,但它看起来并不正确。
$translate('ANOTHER_KEY').then(function(translation) {
$translate('MESSAGE', {value: translation}).then(function(final_translation) {
$scope.final_translation = final_translation;
}
}, ...
这似乎太复杂了,在尝试处理语言变化时会变得更糟。
这是唯一的方法吗?
修改: 最终结果将用作输入的属性,因此我不相信我可以使用指令方法。
<input type="text" special-attribute="TRANSLATION RESULT HERE">
答案 0 :(得分:1)
从代码本身来看,它看起来还不错。您是否忘记将$ translate服务注入您的控制器?
以下是您案例的工作示例。
angular.module('ngView').controller('TranslateCtrl',function($translate, $scope) {
$translate('ANOTHER_KEY').then(function (translation) {
return $translate('MESSAGE', {value: translation});
}).then(function(translation) {
$scope.finalTranslation = translation;
});
});