2017-09-26 89 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