2011-12-30 19 views
0

私はDojo Toolkitを使用して、Dojo Toolkitと日本語の両方の学習に役立つSRSを作成しています。dijit.Editorに日本語の文字が表示されない

SRSを知らない人は、基本的にフラッシュカードシステムです。

私はレビューするカードのデッキを選ぶことができるサイドバーがあります。リストからデッキをクリックすると、TabContainerに新しいタブが開き、2つのContentPaneが含まれています。

一つContentPaneは現在urlファイルjsonへとItemFileWriteStoreを使用していますDataGridが含まれています。

jsonファイルidquestionanswerをpossesing各項目にDataGridための項目を含みます。

idは現在のところintegerの値であり、questionanswerは日本語の文字列を含んでいます。

アイデアはDataGrid内の行をクリックすると、DataGridを含む1以下ContentPaneそれがdijit.Editorに置き換え内容だ持つべきであるということです。

交換前のContentPaneの元の内容は、単にClick on the rows in the grid above to edit a card's detailsという単純な文字列です。

dijit.Editorをプログラムで作成していて、DataGridの行から日本語の文字列を入力しようとするまで、すべて正常に動作します。

これはDataGrid行の情報を取得し、dijit.Editorを作成私はJavaScriptである:上記のコードは作成

gridDataGridオブジェクトであり、card_detailsContentPaneidある)

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')); 
}); 

dijit.EditorContentPaneにありますが、question変数に格納されている値では入力されません(変数にログを記録し、アラートしています。期待値)。

しかし、My Stringのようなリテラル文字列、または反乱者のような日本語の変数で変数を置き換えても問題ありません。

私が交換した場合それも動作します:var question = grid.getItem(e.rowIndex).question;と:それはgrid.getItem(e.rowIndex).question経由での値が代入されたときquestion変数を使用している場合、それは動作しませんなぜvar question = '反乱者';

誰もが知っていますか?

私はまだDojo Toolkitについては初心者ですので、明らかに何かが必要なはずです。

助けていただけたら幸いです!

答えて

0

私は今私の質問に対する答えを見つけました。

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

へ:

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

は、それは私がちょうど変更する必要が判明します

関連する問題