ag-grille gridOptions.api indéfini dans angulaire 2
Je suis en train ag-grille dans angular2 avec tapuscrit, pour certaines raisons, je ne suis pas en mesure d'utiliser l'ag-grille d'Api, d'obtenir non défini erreur.,
voici le code..,
import { AgRendererComponent } from 'ag-grid-ng2/main';
import { GridOptions, RowNode } from 'ag-grid/main';
import { GridOptionsWrapper } from 'ag-grid/main';
import { GridApi } from 'ag-grid/main';
public gridOptions: GridOptions;
constructor()
{
this.gridOptions = <GridOptions>{};
alert(this.gridOptions);
alert(this.gridOptions.api); //*** getting undefined ***
this.gridOptions = <GridOptions>{
columnDefs: this.columnDefs(),
rowData: this.rowData,
onSelectionChanged: this.onSelectionChanged,
groupSelectsChildren: true,
suppressRowClickSelection: true,
rowSelection: 'multiple',
enableColResize: true,
enableSorting: true,
rowHeight: 45}
}//constructor
Veuillez en informer, Merci
Mis à jour avec le code en commentaire ci-dessous
onGridReady() {
console.log(this.gridOptions.api); //here it work
this.selectedRows = this.gridOptions.api.getSelectedRows();
console.log(this.selectedRows);
}
private testClick(event): void {
try {
console.log(this.gridOptions.api); //here gives error
this.selectedRows = this.gridOptions.api.getSelectedRows();
console.log(this.selectedRows); //getting error saying undefined
}
}
OriginalL'auteur Sankaranarayanan | 2016-11-03
Vous devez vous connecter pour publier un commentaire.
La
gridOptions
api sera mise en place et prêt à utiliser une fois que la grille de l'gridReady
événement a été appelé.Sur la ligne que vous faites des tests pour elle,
gridOptions
est juste un Objet vide, et même après cela:Ne parvenez toujours pas à avoir l'api disponibles - crochet dans le
gridReady
ou angulaire dungOnInit
événements et vous serez en mesure d'appeler l'api en toute sécurité.Quand testClick appelée? Est-il axé sur l'utilisateur?
Il ne fonctionne pas pour moi. Je peux exécuter cette onGridReady ou même ngOnInit et encore API est pas défini ;c
OriginalL'auteur Sean Landsman
Deux questions...
Tout d'abord ,comme d'autres l'ont mentionné, l'initialisation d'une référence à la grille de l'api dans onGridReady comme
Deuxièmement, lors de l'ag-grille appelle l'un de vos fourni des gestionnaires (E. g. rowClicked),
this
n'est plus votre angulaire instance de composant, de sorte que dans votretestClick()
méthodethis.gridOptions === undefined
.Pour accéder aux propriétés de votre angulaire composant dans un AgGrid de rappel d'Événement que vous devriez passer
this
viaGridOptions.context
comme ceci:AgGrid événements (généralement) renvoyer une référence à cet objet de contexte dans le Cas params..
Note: je ne suis pas sûr de savoir comment vous avez utilisé
testClick()
mais monrowClicked()
seraient interchangeables-je m'attendre...Note 2 - Le
GridApi
est en fait une propriété deRowClickedEvent
, de sorte que lors de l'obtention par l'intermédiaire de l'objet de contexte comme le montre le superflu, elle illustre le fait que l'accès aux propriétés et méthodes de votre angulaire de la composante de l'ag de la grille événement peut être fait viaAgGridEvent
'scontext
propriété.OriginalL'auteur mounds
C'est à cause de la composante cycle de vie. Dans
constructor
il n'est pas encore initialisé. (Je suis en supposant que vous avez attribué à gridOptions objet de votre grille correctement.)Essayez de l'utiliser dans
À partir de la documentation
Obtenir plus d'informations sur le cycle de vie de ici.
OriginalL'auteur Sefa
Essayez ceci:
Il a travaillé pour moi!
OriginalL'auteur Guenther