0

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

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

私の質問は、 dojo.cache() を使用して、入力タイプに基づいて html を取得する方法です。テンプレートには次のようなデータが含まれる場合があります

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

またはそれ以上...これらすべてのテンプレートを1つのファイルで定義し、 dojo.cache() を使用してファイルを取得できますか? この場合、必要なフィールドを選択する方法に行き詰まっています。

4

1 に答える 1

1

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

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

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

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

var editEle = dojo.create(data.elementType);(dataが応答を持つ変数の名前であり、elementTypeが、作成する必要のある要素のタイプを含む変数のプロパティであると想定します。

オブジェクトリテラルをdojo.createの2番目の引数に渡して、ノードのパラメーターを指定することもできます。 dojo.create('input', {type: 'text'});

于 2011-06-24T14:07:00.920 に答える