Вызов методов плагина - PullRequest
       4

Вызов методов плагина

0 голосов
/ 21 февраля 2012

Как вызвать частный метод из открытого и наоборот, если я следую руководству по созданию плагинов ?

Я обычно объявляю закрытые методы в методе init как:

var methods = {
    init: function(options) {
        var settings = $.extend({
        }, options);

        return this.each(function() {
            var $this = $(this);
            var data = $this.data('griffin-editor');


            this.trimSpaceInSelection = function () {
                 //how do I call a public method here?
                 //to get the this context correct.
            }

            if (typeof data !== 'undefined') {
                return this;
            }

            //the rest of the code.

Возможно, это неправильно?

1 Ответ

1 голос
/ 21 февраля 2012

Если под «правильным контекстом» вы подразумеваете, что хотите вызвать какой-либо открытый метод с таким значением, установленным в trimSpaceInSelection, вы можете сделать это следующим образом:

....
this.trimSpaceInSelection = function () {
    methods.somePublicMethod.apply(this, arguments); // this will pass all arguments passed to trimSpaceInSelection to somePublicMethod
}
....

И если вы хотитеустановите этот внутренний метод в текущую коллекцию jQuery, а затем:

....
this.trimSpaceInSelection = function () {
    methods.somePublicMethod.apply($this, arguments); // this will pass all arguments passed to trimSpaceInSelection to somePublicMethod
}
....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...