AngularJS Angular-Translate变量替换不起作用

时间:2014-02-05 16:22:29

标签: angularjs

使用angular.min.js(版本1.2.11)和angular-translate.js(v1.1.1 - 2013-11-24),我希望能够将范围变量传递给存储信息。在此示例中,我使用了JSON变量'翻译'。

根据我对https://github.com/PascalPrecht/angular-translate/commit/5c27467dc8e8724fa0288ea9ede5e39f54d352echttp://pascalprecht.github.io/angular-translate/docs/en/#/guide/06_variable-replacement的理解,您应该能够使用范围变量进行变量替换。它根本不适合我。我不确定为什么。

的index.html:

<!doctype html>
<html ng-app="myApp">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.11/angular.min.js"></script>
    <script src="http://rawgithub.com/PascalPrecht/bower-angular-translate/master/angular-translate.js"></script>
    <script src="script.js"></script>
  </head>
  <body>

    <div ng-controller="Ctrl">
      <p translate="VARIABLE_REPLACEMENT" translate-values="{ name: 'PascalPrecht'}"></p>
      <p translate="VARIABLE_REPLACEMENT" translate-values="{{foo}}"></p>
      <p translate="VARIABLE_REPLACEMENT" translate-value-name="{{foo}}"></p>
      <p>foo == {{foo}}</p>
    </div>

  </body>
</html>

scripts.js中:

var translations = {
  VARIABLE_REPLACEMENT: 'Hi, {{name}}'
};

var app = angular.module('myApp', ['pascalprecht.translate']);

app.config(['$translateProvider', function ($translateProvider) {
  // add translation table
  $translateProvider.translations(translations);
}]);

app.controller('Ctrl', ['$scope', function ($scope) {
  $scope.foo = "lone ranger";
}]);

将foo(&#39;孤独游侠&#39;)变量替换为&#39; Hi,{{foo}}&#39;的最终结果。应该是“嗨,孤独的游侠”。

Plunker example

非常感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:1)

正如您可以在文档中看到的那样,angular-translate 1.x

不支持此功能

http://angular-translate.github.io/docs/en/#/guide/06_variable-replacement#variable-replacement_custom-translate-value-attributes

答案 1 :(得分:1)

我也有同样的问题,我试过跟随,我希望它对你有用....

   app.config(['$translateProvider', function ($translateProvider) {
        $translateProvider.preferredLanguage('en');
        // add traenter code herenslation table
        $translateProvider.translations('en',translations);
    }]);