4

当我使用“$filter('translate')('HostName')”设置 headerName 或 displayName 时,如下所示

export default (($filter, modalHelper, $translate) => [{
    displayName:$filter('translate')('HostName'),
    headerCellFilter: 'translate',
    headerFilter:'translate',
    field: 'name',
    width: 130,
    filter: 'text'}]


const en = {
    'HEADLINE': 'This is a test',
    'HostName': 'This is Host Name',
    'IPAddress': 'IP Address'}

export default {
   en
}


const cn = {
    'HEADLINE': '这是一个测试',
    'HostName': '主机名',
    'IPAddress': 'IP 地址'
}

export default {
   cn
}

headerName 只能显示一次,不能动态改变,当我运行 changeLanguage 函数时,如下所示

function changeLanguage() {
  $translate.use($scope.lang)
  })
}
$scope.langs = ['English', '中文(简体)'];
$scope.lang = '中文(简体)';

$translateProvider.translations('English', translateEN.en)
  .translations('中文(简体)', translateCN.cn)
  .preferredLanguage('中文(简体)') // 默认 EN

如果有任何解决方案可以解决它?谢谢你。

4

2 回答 2

1

似乎可以用headerValueGetter

使用headerValueGetter而不是colDef.headerName允许动态标题名称。

内部headerValueGetter函数,您可以处理翻译

于 2018-09-11T20:08:59.113 回答
0

headerName您可能必须手动更改。

有一个名为 的函数refreshHeader()这是 docs 中的一个示例

或者,如果更容易,您可以使用setColumnDefs()重新加载整个列定义。

于 2018-06-04T11:05:51.233 回答