2017-09-26 390 views
0

相关:How To translate "No Rows To Show" message in ag-grid?如何动态编辑“noRowsToShow”文本?

该解决方案的问题是,它只能工作一次。在网格可见之后,“noRowsToShow”中的更改是不可能的。在我要寻找一种解决方案,在语言改变之后,我将替换整个网格,我正在寻找另一个解决方案。

我目前所做的是在每次语言更改后,我用新的转换后的localeText替换了旧的localeText。这显然不起作用。它看起来是这样的:

this.gridOptions.localeText = { 
    noRowsToShow: this.translate("noRows", "DE"); 
}; 

Infact它确实工作,但gridOptions不会被我的新的取代。

是否有另一种方法来替换一个新的翻译的localeText?

编辑:我发现问同样的问题,但没有答案在Github上的问题:https://github.com/ag-grid/ag-grid/issues/1286

我希望他能对我的问题

回答

0

在文件看,如果你是使用回应你只是提供(单一)语言使用的localeText。如果你想使用外部翻译,然后它说,使用localeTextFunc

var gridOptions = { 

// standard grid settings, thrown in here to pad out the example 
enableSorting: true, 
enableFilter: true, 
enableColResize: true, 
columnDefs: columnDefs, 

localeTextFunc: function(key, defaultValue) { 

    // to avoid key clash with external keys, we add 'grid' to the start of each key. 
    var gridKey = 'grid.' + key; 

    // look the value up. here we use the AngularJS 1.x $filter service, however you can use whatever 
    // service you want, AngularJS 1.x or otherwise. 
    var value = $filter('translate')(gridKey); 
    return value === gridKey ? defaultValue : value; 
} 

};

+0

但是接着localeTextFunc在开始时只会被调用一次。我的目标是在每次语言更改后,网格更新noRowsToShow – SovietPanda

+0

当语言改变时,您可以随时重新初始化网格。如果不使用HTML管道类型结构,则必须使用代码重新初始化由于语言而在后台代码中更改的值。在我当前的一个公司应用程序中,这正是我们应对语言变化的方式。如果它改变了,我们重新初始化/显示背景元素进行匹配。但这是我们处理的事情。 – Matrim