在 ng-grid header 名称中启用多语言

Enable multilanguage in ng-grid header name

我试过$translate服务如下:

 columnDefs: [{ 
                field: 'option_name',
                displayName: $translate('Optionname'),
                cellTemplate: '<div class="ngCellText"  ng-bind="row.getProperty(col.field)" ></div>' 
            },
            ...

正在显示 {}。我也尝试通过过滤器翻译:

columnDefs: [{ 
                field: 'option_name',
                displayName: '{{ Optionname | translate }}',
                cellTemplate: '<div class="ngCellText"  ng-bind="row.getProperty(col.field)" ></div>' 
            },
            ...

但它显示 {{ Optionname | translate }} 那么我如何翻译 ng-grid 中的 header 名称?

您需要使用 $translate.instant('id') 直接与 $translation 作用域交互。所以 .instant() 会 return 一个 string 这是翻译的。您可以在 documentation.

中阅读有关此范围的信息

例子

columnDefs: [
    {   field: 'option_name',
        displayName: $translate.instant('Optionname'),
        cellTemplate: '<div class="ngCellText"  ng-bind="row.getProperty(col.field)" ></div>'
    },
    ...

重新启动 ng-grid 以再次翻译 displayName 的语言。

$translate.use("en_US").then(function(data){ 
    $scope.columnDefs = columnDefs: [{   
        field: 'option_name',
        displayName: $translate.instant('Optionname'),
        cellTemplate: '<div class="ngCellText"  ng-bind="row.getProperty(col.field)" ></div>'
    },
    ...
});