覆盖WordCompress Media Uploader的saveCompat

时间:2014-06-26 13:48:53

标签: wordpress backbone.js override media uploader

我是Backbone的新手,所以无法理解我做错了什么。我需要的是覆盖saveCompat(media-models.js line 310WP 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 个答案:

答案 0 :(得分:2)

我明白了。扩展它的正确方法是:

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

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

答案 1 :(得分:1)

使用_.extend删除了调用方法的超类实现的能力。正确(或至少是工作)的方法是使用Backbone的extend方法,然后在wp.media.model.Attachment中覆盖原型,如下所示:

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

wp.media.model.Attachment.prototype = MediaCreditAttachmentModel.prototype;