在控制器中使用$ translate

时间:2014-12-19 12:02:12

标签: angularjs

我试图获取在translations.js文件中定义的文本,以便将其作为文本传递给angular-bootstrap警报。我已将$ translate服务注入控制器并使用$ translate服务,如下所示:

$translate('TXT_ALERT_MSG').then(function (translation) {
        $log.debug( translation );
});

但它会破坏角度并指出以下错误消息:

TypeError: object is not a function

这是在上面代码的第一行引发的。我把它包装在一个承诺中,以确保我只在成功检索翻译时打印该值。我也尝试将值赋给变量,但这会引发同样的错误:

function getTranslation() {
        var msg = $translate('TXT_ALERT_MSG');
        $log.debug(msg);
    }
    getTranslation();

这很可能是简单的事情,那又是什么呢?

由于

修改 我如何将翻译模块注入应用程序:

angular.module('MainApp',['pascalprecht.translate']);

以及如何配置:

angular.module('MainApp').config(['$translateProvider', 'ConfigProvider', function ($translateProvider, ConfigProvider) {
var config = ConfigProvider.$get();
var rootUrl = config.get('ourRootUrl');

$translateProvider.translations('en', {

    // all our translations e.g.
    TIMED_OUT_BUTTON: 'Return to Dashboard'

$translateProvider.preferredLanguage('en');

}]);

1 个答案:

答案 0 :(得分:1)

尝试通过翻译过滤器获取翻译

$filter('translate')('TIMED_OUT_BUTTON')