微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在配置阶段进行翻译使用angular-translate

如何解决在配置阶段进行翻译使用angular-translate

是的,就像在EDIT中提到的那样:在标记中应用过滤器显然是最简单的解决方案。

除此之外,如果您真的想在配置阶段访问服务,请继续阅读:

在Angular <= 1.4中,这在技术上是不可能的。

从Angular v1.5(当前rc版本为1.5.0-rc.0)开始, , 似乎是可行的,因为config阶段应该是在服务之前进行配置的地方第一次重新使用。

这是使以下变为可能的更改(链接到github上的angular.js存储库)(仅允许装饰$injector)。

现在,出现示例:http ://codepen.io/NicBright/pen/PZJBPP?editors=101

JS部分:

(function() {
  var result;

angular.module('myApp', [])
  .config(function($injectorProvider) {
    result = $injectorProvider.$get().get('myService').getSomething();
  })
  .factory('myService', function() {
    return { getSomething: function() { return 'it works!'; }}
  })
  .controller("MainCtrl", function($scope) {
    $scope.result = result;
  })

})();

HTML部分:

<div ng-app="myApp" ng-controller="MainCtrl">
  result: {{ result }}
</div>

解决方法

我正在开发Angular Web应用程序的i18n部分,我想在配置阶段使用angular-translate。

我定义了一些我想翻译的数据:

.state('app.tracking',{
    url: '/:IdentityIdentifier',params:{
        IdentityIdentifier: {squash: false,value: null}
    },templateUrl: 'views/pages/tracking.html',data : { title: $filter('translate')('tracking.tracking.TITLE') },resolve: load([],function(){ return loadGoogleMaps(); })
})

这是我的配置声明:

.config(
  [          '$stateProvider','$urlRouterProvider','$locationProvider','MODULE_CONFIG','$httpProvider','$filter',function ($stateProvider,$urlRouterProvider,$locationProvider,MODULE_CONFIG,$httpProvider,$filter) {

我得到的错误是经典 错误错误:[$ injector:unpr]未知提供程序:$ filter

我知道我不能在配置阶段使用服务,只能在提供程序中使用,但是我的问题有解决方案吗?

编辑: 我的问题已经解决,方法是将键 ‘tracking.tracking.TITLE’ 分配给我的 data.title
变量,然后在我的标记中使用 translate 指令对其进行 翻译

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。