2011-06-24 24 views
0

フォーム・データを表示するためのdojoウィジェットを作成しました。このウィジェットでインライン編集を有効にしたい最初に私はJavaScriptで文字列としてhtmlを書くことによって実験を始めました。私はこれをしたくありません。 dojoはhtmlファイルをテンプレートとしてロードするインタフェースdojo.cache()を提供します。このメソッドを使用して、フォームビューのテンプレートデータを読み込みます。Dojoウィジェット・インライン編集

フォーム編集用。 ajaxコールが送信され、フィールドタイプのデータが受信されます。これに基づいて、HTMLをインラインエディタに解析する必要があります。

私の質問は、dojo.cache()を使用して、入力タイプに基づいてHTMLを取得する方法です。テンプレートは

<input type="text" /> 
or 
<select></select> 
or 
<textarea></textarea> 
or 
<div class="autocomplete"></div> 

か何か以上のようなデータが含まれる可能性があります...私は)(一つのファイルにすべてのこれらのテンプレートを定義し、dojo.cacheを使用してファイルを取得することはできますか?この場合、私は必要なフィールドを選択する方法についていません。

答えて

1

dojo.cacheを使用してインポートするテンプレートがどれほど複雑かはわかりませんが、代わりにdojo.create()を使用すると考えましたか?これにより、DOM要素をプログラムで作成することもできます。

あなたの解決策に関して、私は最初にあなたがやろうとしていることについて混乱しましたが、私は今それを得ると思います。データを表示しているページ内で、編集するデータをユーザーが選択できるようにし、そのアクションを実行すると、データを変更できる適切な編集可能なコンテナが表示されます。

この場合、私は間違いなくdojo.create()がdojo.cacheから取り込んだHTMLテンプレートより優れた代替手段です。

Dojo.createはサービスXHR呼び出しから戻ってきた変数で簡単に使用でき、作成された要素のタイプはサーバーからの応答に依存します。

var editEle = dojo.create(data.elementType);(データはあなたがあなたの応答を持っているとをelementTypeを作成する必要がある要素のタイプを含むことのプロパティである変数の名前であると仮定。

をあなたはまた、第二に、オブジェクトリテラルを渡すことができます引数dojo.createを使用して、ノード上のパラメータを指定します。 dojo.create('input', {type: 'text'});

関連する問題