/ / dijit.Editor non visualizza i caratteri giapponesi - javascript, dojo

dijit.Editor non mostra caratteri giapponesi - javascript, dojo

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 ContentPaneS.

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 № 1

Ora 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");