【问题标题】:AngularJS: How to use translation (i18n) in controller for popup?AngularJS:如何在控制器中使用翻译(i18n)进行弹出?
【发布时间】:2015-02-09 11:46:08
【问题描述】:

我,用 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 文件中定义。

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

【问题讨论】:

    标签: javascript angularjs internationalization


    【解决方案1】:

    使用$translate服务

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

    More info

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多