Переопределить saveCompat для WordPress Media Uploader

Я новичок в Backbone, поэтому не могу понять, что я делаю не так. Что мне нужно, это переопределить saveCompat (media-models.jsline 310, WP 3.9.1). Я пытаюсь сделать это так же, как я переопределил некоторые взгляды СМИ

wp.media.model.Attachment = wp.media.model.Attachment.extend({

    saveCompat: function( data, options ) {
        some code here...
    }
});

Но это не работает для меня. Native WordPress saveCompat выполнен. В то же время та же самая идея прекрасно работает для wp.media.view.AttachmentCompat например

wp.media.view.AttachmentCompat = wp.media.view.AttachmentCompat.extend({

    save: function( event ) {
        some code here...
    }
});

Заранее спасибо!

2 ответа

Я понял. Правильный способ расширить это:

_.extend( wp.media.model.Attachment.prototype, {

    saveCompat: function( data, options ) {
        some code here...
    }
});

С помощью _.extend убирает возможность вызова реализации методов суперкласса. Правильный (или, по крайней мере, рабочий) способ сделать это - использовать Backbone's extend метод, а затем переписать прототип в wp.media.model.Attachment как это:

var MediaCreditAttachmentModel = wp.media.model.Attachment.extend( {
        saveCompat: function( data, options ) {
           ...
        }
} );

wp.media.model.Attachment.prototype = MediaCreditAttachmentModel.prototype;
Другие вопросы по тегам