AngularJS:如何在控制器中使用翻译(i18n)弹出窗口?

时间:2015-02-09 11:46:09

标签: javascript angularjs internationalization

我',在angularjs中编写应用程序并且必须执行i18n。一切都很好但是我做了错误处理而且出现了问题:我不知道如何在控制器中使用翻译弹出窗口。

我的控制器看起来像这样:

function showErrorPopup($ionicPopup, $ionicHistory, $location, $translate, error) {
    if (error.status == 404) {
         errorId = ...

         $ionicPopup.show({
              title: '{{ERROR.TITLE | translate}}></span>',
              template: '{{ERROR.errorId| translate}}',
              buttons: [{ text: 'OK' }]
         });   
    }
    else if (error.data.ExceptionMessage != null || error.data.ExceptionMessage != "" || error.data.ExceptionMessage != undefined) {
        errorId = ...

        $ionicPopup.show({
              title: '{{ERROR.TITLE | translate}}></span>',
              template: '{{ERROR.errorId| translate}}',
              buttons: [{ text: 'OK' }]
         });   
    }
    else {
        errorId = ...

        $ionicPopup.show({
              title: '{{ERROR.TITLE | translate}}></span>',
              template: '{{ERROR.errorId| translate}}',
              buttons: [{ text: 'OK' }]
         });   
    }
}

这是我的控制器。这取决于结果是什么,但我总是希望显示一个错误的弹出窗口(错误的标题= ERROR.TITLE,错误的文本= ERROR.errorId)。

ERROR和他的TITLE或他的ID(如100,200 ......)在json文件中定义。

你可以帮我解决这个问题吗? 如果您还需要了解更多信息,请询问。

1 个答案:

答案 0 :(得分:3)

使用$translate服务

var translatedErrorTitle = $translate.instant(ERROR.TITLE);
var translatedErrorId    = $translate.instant(ERROR.errorId);

More info