私たちも同じ問題を抱えています。ノックアウトを 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>