当前位置: 首页 > 面试题库 >

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

阴永福
2023-03-14
问题内容

我正在开发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 指令对其进行 翻译


问题答案:

是的,就像在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>


 类似资料:
  • 本文向大家介绍25个 Git 进阶技巧(翻译),包括了25个 Git 进阶技巧(翻译)的使用技巧和注意事项,需要的朋友参考一下 我已经使用git差不多18个月了,觉得自己对它应该已经非常了解。然后来自GitHub的Scott Chacon过来给LVS做培训(LVS是一个赌博软件供应商和开发商,从2013年开始的合同),而我在第一天里就学到了很多。 作为一个对git感觉良好的人,我觉得分享从社区里掌

  • 要想使用体验好,进阶配置少不了。(单押) 更换国内源 使用pkg update 更新一下的时候发现默认的官方源网速有点慢,在这个喧嚣浮躁的时代,我们难以静下心等待,这个时候就得更换成国内的Termux清华大学源了,加快软件包下载速度。 方法一:自动替换(推荐) 可以使用如下命令自动替换官方源为 TUNA 镜像源 pkg update 卡住的话多按几次回车 不要傻乎乎的等Bash sed -i 's

  • 你有时可能想实现: 对语言应用自定义 loader string,而不是让 vue-loader 去推断; 覆盖默认语言的内置 loader 配置。 使用自定义 loader 预处理或后处理特定语言块。 为此,请指定 vue-loader 的 loaders 选项: 注意 preLoaders 和 postLoaders 只在 10.3.0+ 版本支持 module.exports = { /

  • 我想用法语和英语翻译我的应用程序。我完全遵循了CakePHP3文档,但它不起作用。 在我的开发中,我使用了一个vagrant框来轻松启动并运行CakePHP3。这个盒子名叫“流浪厨师” 我修改了第100行,将法语作为默认语言。 我将此方法添加到默认页面控制器 我加了这两行 从终端,我输入这个命令。CakePHP在中创建了2个文件。那些文件是和。我翻译了默认值。像这样的文件: 文件现在如下所示: 尽

  • 我目前正在学习Gradle。 但是我发现,当我在命令行运行时,复制不会发生。只有当显式执行任务时(即通过在命令行运行)才会发生复制。所以上面的代码实际上行为与 我对配置阶段和配置闭包的理解是否不正确?还是我漏掉了一些信息?