/ / dijit.Editor no muestra caracteres japoneses - javascript, dojo

dijit.Editor no muestra caracteres japoneses - javascript, dojo

Estoy usando Dojo Toolkit para construir un SRS para ayudar tanto en mi aprendizaje del Dojo Toolkit como del idioma japonés.

Para aquellos de ustedes que no saben, un SRS es básicamente un sistema de tarjeta flash.

Entonces, tengo una barra lateral donde puedo elegir un mazo de cartas para revisar y cuando hago clic en un mazo de la lista, se abre una nueva pestaña en un TabContainer que contiene dos ContentPanes.

Uno ContentPane contiene una DataGrid que actualmente usa un ItemFileWriteStore con un url a un json archivo.

los json archivo contiene los elementos para el DataGrid con cada elemento que posee un id, question y answer.

los id actualmente es solo un integer valor y el question y answer ambos contienen cadenas japonesas.

La idea es que cuando una fila en el DataGrid se hace clic, el ContentPane debajo del que contiene el DataGrid debería tener su contenido reemplazado por un dijit.Editor.

Los contenidos originales de la ContentPane antes de que se reemplacen es solo una cadena simple que dice Click on the rows in the grid above to edit a card"s details.

Estoy creando el dijit.Editor programáticamente y todo funciona bien hasta que trato de darle una cadena japonesa del DataGrid"S fila.

Este es mi JavaScript que obtiene el DataGrid información de la fila y crea el dijit.Editor:

(grid es el DataGrid objeto y card_details es el 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"));
});

El código anterior crea el dijit.Editor en el ContentPane pero no lo llena con el valor almacenado en el question variable (he registrado y alertado a la variable y contiene el valor esperado).

Sin embargo, si reemplazo la variable con una cadena literal como My String o incluso algo en japonés como 反乱者 funciona bien

Incluso funciona si reemplazo: var question = grid.getItem(e.rowIndex).question; con: var question = "反乱者";

¿Alguien sabe por qué no funcionará al usar el question variable cuando se le ha asignado su valor a través de grid.getItem(e.rowIndex).question?

Todavía soy un principiante cuando se trata de Dojo Toolkit, así que estoy seguro de que debe ser algo obvio.

¡Cualquier ayuda sería apreciada!

Respuestas

0 para la respuesta № 1

He encontrado la respuesta a mi pregunta ahora.

Resulta que solo necesitaba cambiar:

var question = grid.getItem(e.rowIndex).question;

a:

var question = grid.store.getValue(grid.getItem(e.rowIndex), "question");