4

Knockout.jsを使用するページにjQuery-File-Uploadコードを追加しました。コードはJavaScriptテンプレートエンジンを使用していますが、これは正常に機能しますが、Knockoutのテンプレートを使用する方法があるかどうか誰かが知っていますか?

uploadTemplateとdownloadTemplateは、関数ポインターのように見えます。

ドキュメントによると...uploadTemplateメソッドとdownloadTemplateメソッドは、jQueryコレクションオブジェクトまたはレンダリングされたアップロード/ダウンロードテンプレートの文字列表現のいずれかを返すことになっています。

どこから始めたらいいのかわからない。

4

1 に答える 1

4

私たちも同じ問題を抱えています。ノックアウトを jQuery テンプレート (すぐに jsRender に置き換えます) と組み合わせて使用​​します。JQuery-File-Upload (blueImp) のダウンロード/アップロード テンプレートはDjango テンプレートです。これらのテンプレートは、アプリケーションのノックアウト テンプレートのように扱います。jQuery のファイル アップロード機能をノックアウト カスタム バインダーにカプセル化しました。

ko.bindingHandlers.fileupload = {
    update: function (element, valueAccessor) {
        var options = valueAccessor() || {};

        //initialize
        $(element).fileupload(options);
    }
};

次のように使用します。

<div id="fileuploadcontrol" 
     data-bind="fileupload: { 
                    url: [UPLOAD URL],
        maxFileSize: [MAX FILE SIZE],
        acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
        completed: function (e, data) {
            $.each(data.files, function (index, file) {
                 //Stuff to do with uploaded files
            }
        }
                 }">

      <div class="fileupload-buttonbar">
    <!-- buttons -->
            //STUFF

            <!-- The global progress bar -->
            //STUFF
  </div>
</div>
于 2013-06-17T13:08:48.550 に答える