1

見てくれてありがとう!

バックグラウンド

jQueryテンプレートが他のいくつかの光沢のあるオブジェクト用に確保されていることを認識していますが、とにかく現在のプロジェクトでフレームワークを使用する義務があります。

JSONを受け入れて適切なフォームフィールドをレンダリングする動的フォームビルダーを作成し、1回限りのコントロールのテンプレートにバインドしています。たとえば、基本的なテキストフィールドを表すJSONオブジェクトは、次のようなテンプレートに対応します。

   <!-- BEGIN TEXTBOX TEMPLATE -->
    <script type="text/html" id="Template_TextBox">
        <div class="formField">
            <label>
                ${LabelText}
                <span class="small">${HelpText}</span>
            </label>
            <input type="text" id="${FieldId}" placeholder="${Placeholder}" />
            <div class="clear10"></div>
        </div>
    </script>
    <!-- END TEXTBOX TEMPLATE -->

FormBuilderクラスは独自のJavaScriptファイルに存在し、プロジェクト全体で使用されます。

質問

このクラスはプロジェクト全体でフォームフィールドをレンダリングするために使用され、これらのフィールドは常に同じように見えるため(つまり、テキスト入力、選択リストなど)、jQueryテンプレートを標準化してすべてを1か所に保持したいと思います。フォームのあるすべてのページにこれらのテンプレートを貼り付ける必要はありません。これらのテンプレートをファイル内でフォーム作成ロジックの残りの部分で初期化するか、FormBuilder.js少なくとも、すべてのテンプレートを含み、サイト全体で使用するために.jsファイルで参照できるHTMLページをどこかに配置したいと思います。

これは可能ですか?もしそうなら、どのように?

4

1 に答える 1

2

これは私が思っていたよりも簡単でした:

ステップ1:テンプレートをhtmlの文字列として変数に配置します。

var myTemplate = "<h1>${someItem}</h1>";

ステップ2:テンプレートをキャッシュする

$.template("myTemplate", myTemplate);

ステップ3:それを使用してください!

$.tmpl("myTemplate", myJsonData).appendTo("#SomeHtmlElement");
于 2013-03-28T16:42:59.147 に答える