1

私は本当に jsRender を初めて使用しますが、ドロップダウン リストにデータを入力するのに非常に便利であることがわかったので (ほんの数行で)、jsRender を使用して、それらのコントロールにデータを表示せずにコントロールを作成できるかどうかを尋ねたいと思いました (少なくとも今のところありません)

これは、私が今やっていることの単純化されたバージョンで、数行の html コードを連結しています

HTML コード :

<table>
    <tr>
        <td>
            <fieldset id="fldRetorno">
                <legend>Return Details</legend>
                <input id="addRow" type="button" value="+ Add" />
                <table id="tbRetornosModelos" class="tabla-retorno">
                    <tbody></tbody>
                </table>
            </fieldset>
        </td>
    </tr>
</table>
</table>

JS コード:

 var counter = 0; // Counter for number of rows     

 $("#addRow").on('click', function () {
     counter = counter + 1;

     var newName = "Name" + counter;
     var newType = "Type" + counter;

     var newEnlaceEstruct = "tbExp_s1_e" + counter;
     var newRow = '<tr><td>Return # ' + counter + ':  </td>' +
         '<td>' + '  Name</td>' +
         '<td><input type="text" id="' + newName + '" />' + '</td>' +
         '<td>Data Type</td>' +
         '<td><select name="select" id="' + newType + '"> <option value="Seleccione" selected>Select...</option> <option value="Number" >Number</option><option value="Text">Text</option></select></td>' +
         '<td><input type="button" value="-Remove" class="deleteFila"></td>' +
         '<td><input type="hidden" id="enlace' + counter + '" value="' + newEnlaceEstruct + '" /></td>' +
         '</tr>';
     $('table.tabla-retorno >tbody').append(newRow);

     $(".deleteFila").on("click", function (event) {
         $(this).closest("tr").remove();
     });
 });

簡略版の jsfiddle http://jsfiddle.net/edaloicaro18/YURDR/2/

すべての列を行に連結し、それをテーブルに割り当てる部分append(newRow)は、私が取り除きたいものです。tag で宣言されたテンプレートを使用して、<script>すべての ID を json 配列に入れてrender、ドロップダウン リストと同じように method に渡すことを考えていました。

しかし、編集する必要がある場合はどうすればよいですか (現在行っているように挿入するのではなく) ?? 次に、コントロールの ID を生成するだけでなく、それらのコントロールにデータを表示する必要があります。じゃあどうしよう??jsRender は render メソッドで複数のデータソースを受け入れますか?

そのような場合、あなたはどうしますか?モグラ塚から山を作っているだけかもしれない

助けてくれてありがとう、アクセル

PSこれは、より良いアイデアを提供するために、私がする必要があることの完全なバージョンです。http://jsfiddle.net/edaloicaro18/4yQML/25/embedded/result/ 簡易版の扱い方がわかれば、複雑なものでも問題ないと思います。

4

1 に答える 1

1

JsRender を使用すると、必要なデータを render メソッドに渡すことができ、追加のコンテキスト パラメーターでヘルパー メソッドやメタデータなどを渡すこともできます。

myTemplate.render(data, context)

render メソッドの API ドキュメントはこちら

テンプレートから、コンテキスト オブジェクトのプロパティまたはメソッドに または としてアクセスし~somePropertyます~someMethod(...)

ただし、JsRender を使用して、オプションだけでなくコンテンツ全体をレンダリングすることを検討することもできます。また、JsViews を使用する場合は、DOM 要素を追加または削除するコードを記述する必要はありません。宣言的に機能するだけです。

ここに非常に単純な例がありますData-linked tags、およびここにはさらに多くの例があります: JsViews samples

このページ(より高度な)にも興味があるかもしれません。ID を挿入するか、それが不要になった場合に別のアプローチを使用するかを選択できる場合があることを示しているためです...

于 2013-10-09T02:31:44.743 に答える