2017-09-26 6 views
0

En relation: How To translate "No Rows To Show" message in ag-grid?Comment modifier dynamiquement le texte "noRowsToShow"?

Le problème avec la solution est qu'elle ne fonctionnera qu'une seule fois. Une fois la grille visible, les modifications de "noRowsToShow" ne sont pas possibles. Et avant de chercher une solution où je remplacerai toute la grille après un changement de langue, j'en cherche une autre. Ce que j'ai fait après chaque changement de langue, j'ai remplacé l'ancien localeText par un nouveau tranlated. Cela n'a évidemment pas fonctionné. Il ressemble à ceci:

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

En fait, cela fonctionne mais les options gridOptions ne sont pas remplacées par les nouvelles.

Existe-t-il une autre façon de remplacer le localeText par un nouveau traduit?

EDIT: Je trouve la question sur Github qui pose la même question, mais sans réponse: https://github.com/ag-grid/ag-grid/issues/1286

J'espère qu'il va répondre à ma question

Répondre

0

En regardant la documentation si vous êtes utilisation le localeText vous fournissez simplement la (seule) langue à utiliser. si vous souhaitez utiliser un traducteur externe alors il dit utiliser localeTextFunc

i.e.

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

Mais là encore localeTextFunc ne sera appelé qu'une seule fois au début. Mon but est que, après chaque changement de langue, la grille se mette à jour noRowsToShow – SovietPanda

+0

Vous pouvez toujours réinitialiser la grille lorsque la langue change. Si vous n'utilisez pas les structures de type html pipe, vous devez utiliser du code pour réinitialiser les valeurs qui changent dans le code d'arrière-plan en raison de la langue. Dans l'une de mes applications actuelles, c'est exactement de cette manière que nous faisons face aux changements de langage. Si elle change, nous ré-initialisons/affichons les éléments d'arrière-plan à faire correspondre. Mais c'est quelque chose que nous gérons. – Matrim