Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 控制器中的角度平移dict_Javascript_Angularjs_Angular Translate - Fatal编程技术网

Javascript 控制器中的角度平移dict

Javascript 控制器中的角度平移dict,javascript,angularjs,angular-translate,Javascript,Angularjs,Angular Translate,在我的应用程序中,我用于本地化。但我不明白如何在控制器中转换dict值: $scope.rx_usart_names = [ {'val': 0, 'name': 'UART 1'}, {'val': 2, 'name': 'UART 3'}, {'val': 3, 'name': 'UART 4'}, {'val': 5, 'name': 'UART 6'} ]; 然后我在模板中显示它,如: <md-select placeholder="Receive

在我的应用程序中,我用于本地化。但我不明白如何在控制器中转换dict值:

$scope.rx_usart_names = [
    {'val': 0, 'name': 'UART 1'},
    {'val': 2, 'name': 'UART 3'},
    {'val': 3, 'name': 'UART 4'},
    {'val': 5, 'name': 'UART 6'}
];
然后我在模板中显示它,如:

<md-select placeholder="Receiver Port" ng-model="RFDump.set.rx_usart">
  <md-option ng-repeat="option in rx_usart_names" ng-value="option.val">
    {{ option.name }}
  </md-option>
</md-select>

{{option.name}
如果我使用:
$translate.instant('UART 1')
然后当我更改语言时,我的值没有更改

如果我使用
$translate('UART 1')
,那么它将返回承诺

例如:


您可以使用翻译过滤器

翻译
过滤解决方案:
()

HTML:

控制器:

function MyCtrl($translate) {

  var vm = this;

  vm.rx_usart_names= [{
    'val': 0,
    'name': 'UART1'
  }, {
    'val': 2,
    'name': 'UART2'
  }];

  vm.changeLanguage = function(langKey) {
    $translate.use(langKey);
  };
}

我知道,若你们有很多键要翻译,那个么这并不是使用过滤器的最快方法,但即使在他们使用过滤器的例子中也是如此。这不是一个纯粹的控制器解决方案,但至少它工作得很好。我希望有人张贴一个更好的方式来做这件事。。。祝您好运

您是否在
app.config()
中使用
$translateProvider
定义了一些键?请看下面的例子。我还添加了@the.Bear,为什么键不能有空格?当我以编程方式更改语言时,$translate.instant('UART 1')没有更改
app.config(function($translateProvider) {
  $translateProvider.translations('en', {
    UART1: 'UART1 (English)',
    UART2: 'UART2 (English)'
  });
  $translateProvider.translations('de', {
    UART1: 'UART1 (German)',
    UART2: 'UART2 (German)'
  });
  $translateProvider.preferredLanguage('en');
});
function MyCtrl($translate) {

  var vm = this;

  vm.rx_usart_names= [{
    'val': 0,
    'name': 'UART1'
  }, {
    'val': 2,
    'name': 'UART2'
  }];

  vm.changeLanguage = function(langKey) {
    $translate.use(langKey);
  };
}