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 ContentPane
s.
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 № 1He 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");