イベントsync
をリッスンするためにバックボーン関数をオーバーライドしようとしていますprogress
。ただし、xhr.upload
は未定義であるため、以下のコードは機能しません。何か案は?
var Model = Backbone.Model.extend({
...
sync: function(method, model, options) {
options.beforeSend = function(xhr) {
xhr.upload.addEventListener("progress", function(event) {
if (event.lengthComputable) {
var percentComplete = event.loaded/event.total;
console.log(percentComplete);
}
}, false);
}
return Backbone.sync(method, model, options);
},
...
});
これが最終的に私たちのために働いたものです:
sync: function(method, model, options) {
options.beforeSend = function(xhr, settings) {
settings.xhr = function() {
var xhr = $.ajaxSettings.xhr();
xhr.upload.addEventListener("progress", function (event) {
Math.ceil(event.loaded/event.total*100);
}, false);
return xhr;
}
}
return Backbone.sync(method, model, options);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加