Accedi al modello di colonna della griglia ExtJS da un altro file
-
06-07-2019 - |
Domanda
Ho una griglia ExtJS che contiene un pulsante. Il pulsante attiva una funzione definita in un altro file JS incluso nella pagina della griglia. La funzione si attiva ok ma in quella funzione voglio ottenere il conteggio delle colonne in questo modo:
grid.getColumnModel().getColumnCount()
Il problema è che visualizzo un errore come: grid.getColumnModel non è una funzione.
In PHP farei un "$ ext globale" e quindi accedere a quella funzione. Come posso farlo in Ext? Come posso accedere alla griglia da altri file? Cosa deve essere definito?
Grazie.
Soluzione
Come hai definito l'oggetto griglia? L'hai fatto in questo modo:
var grid = new Ext.grid.GridPanel(...);
In tal caso, l'oggetto griglia non rientra nell'ambito globale. Rimuovi " var " e vedere se aiuta.
Altri suggerimenti
Sembra un problema con l'ambito. Vedi la variabile ambito in JavaScript .
Fondamentalmente, puoi fare:
my_global_grid = ... // accessible in the current ~global~ context (document, window)
var my_local_grid = ... // accessible only in the function
window.my_window_global_grid = ... // accessible in the same window
Potresti anche passare l'oggetto griglia nella tua funzione come argomento:
function myFunction(arg1,arg2,grid){
...
var count = grid.getColumnModel().getColumnCount();
...
}