Sto usando il Dojo Toolkit per costruire un SRS per aiutarmi sia nell'apprendimento del Dojo Toolkit sia nella lingua giapponese.
Per quelli che non sanno che un SRS è fondamentalmente un sistema di schede flash.
Quindi, ho una barra laterale in cui posso scegliere un mazzo di carte da rivedere e quando faccio clic su un mazzo dall'elenco si apre una nuova scheda in un TabContainer
che contiene due ContentPane
S.
Uno ContentPane
contiene a DataGrid
che attualmente utilizza un ItemFileWriteStore
con un url
a a json
file.
Il json
il file contiene gli elementi per il file DataGrid
con ogni oggetto che possiede un id
, question
e answer
.
Il id
è attualmente solo un integer
valore e il question
e answer
entrambi contengono stringhe giapponesi.
L'idea è che quando una riga nel DataGrid
è cliccato, il ContentPane
sotto quello che contiene il file DataGrid
dovrebbe avere il suo contenuto sostituito con a dijit.Editor
.
I contenuti originali di ContentPane
prima che vengano sostituiti è solo un semplice detto di stringa Click on the rows in the grid above to edit a card"s details
.
Sto creando il dijit.Editor
programmaticamente e tutto funziona bene fino a quando non provo a dargli una stringa giapponese dal DataGrid
"s row.
Questo è il mio JavaScript che ottiene il DataGrid
riga "s informazioni e crea il file dijit.Editor
:
(grid
è il DataGrid
oggetto e card_details
è il id
del ContentPane
)
dojo.connect(grid, "onRowClick", function(e) {
var id = grid.getItem(e.rowIndex).id;
var question = grid.getItem(e.rowIndex).question;
var answer = grid.getItem(e.rowIndex).answer;
dojo.byId("card_details").innerHTML = "";
var editor = new dijit.Editor({
id: "editor",
value: question
}, dojo.byId("card_details"));
});
Il codice sopra crea il dijit.Editor
nel ContentPane
ma non lo riempie con il valore memorizzato in question
variabile (ho registrato e avvisato la variabile e contiene il valore previsto).
Tuttavia, se sostituisco la variabile con una stringa letterale come My String
o anche qualcosa in giapponese come 反乱者
funziona bene
Funziona anche se sostituisco: var question = grid.getItem(e.rowIndex).question;
con: var question = "反乱者";
Qualcuno sa perché non funzionerà quando si utilizza il question
variabile quando gli è stato assegnato il valore tramite grid.getItem(e.rowIndex).question
?
Sono ancora un principiante quando si tratta di Dojo Toolkit, quindi sono sicuro che deve essere qualcosa di ovvio.
Qualsiasi aiuto sarebbe apprezzato!
risposte:
0 per risposta № 1Ora ho trovato la risposta alla mia domanda.
Si scopre che avevo solo bisogno di cambiare:
var question = grid.getItem(e.rowIndex).question;
a:
var question = grid.store.getValue(grid.getItem(e.rowIndex), "question");