角度注入在链接指令中转换

时间:2017-12-12 08:40:14

标签: javascript angularjs translation inject

我有两个文件,一个Angular指令和一个Controller。 Controller注入了translate功能,但是我需要将它注入指令中,以便我可以在那里进行一些翻译。 问题是,每次我尝试注入翻译模块时,它都不会这样做。 (我在另一个文件中定义了字符串,我猜测这不是问题。) 到目前为止我的代码看起来像这样:

appmod = angular.module('directive', []);
appmod.directive('gvPivot', ['$translate', function() {
    return {
            restrict : "E",
            replace : true,
            scope : {
                name : "@",
                data : "="
            },
            template : '',
            link : function(scope, iElement, iAttrs, controller, transcludeFn, translate) {
                scope.$watch("data", function(newValue, oldValue, translate) {
                    console.log('{{ "Translated text" | translate}}');

我期望的结果是它记录了翻译文本"对语言。

但它记录的是

{{ "Text to translate" | translate}}

我知道我可能经常在太多不正确的地方注入翻译方式,但截至目前我只是在做霰弹枪的方法,并尝试将其插入任何可能适合的地方。

1 个答案:

答案 0 :(得分:0)

我找到了翻译文本的另一种方法,也是注入$ filter。

appmod.directive('gvPivot', ['$translate', '$filter', function($translate, $filter) {
return {
        restrict : "E",
        replace : true,
        scope : {
            name: "@",
            data : "="
        },
        template : '',
        link : function(scope, iElement, iAttrs, controller, transcludeFn) {
            console.log($filter('translate')('translate this'));