Как именовать методы пространства, которые не принадлежат к самому плагину? - PullRequest
0 голосов
/ 20 января 2012

Я получил несколько точек расширения в своем плагине, для которых я предоставляю некоторые реализации по умолчанию. Эти объекты не принадлежат моему объекту методов, но должны по-прежнему иметь правильное пространство имен.

Как мне именовать эти расширения?

Я пытался сделать это:

(function ($) {
    var pageManagers = {};
    var themeManagers = { };

    themeManagers.noTheme = {
        some: function() {
        }
        // and more.
    }

   var methods = {
      // all of my methods
   }


    $.fn.griffinTable = function (method) {
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' + method + ' does not exist on jQuery.griffinTable');
        }

        return this;
    };
})(jQuery);

Но я не могу понять, как получить доступ к pageManagers или themeManagers извне, как:

<script type="text/javascript">
    $(function () {
        $('#mytable').griffinTable({ fetchAtStart: true, themeManager: themeManagers.noTheme });
    });
</script>

Как мне использовать пространство имен и использовать их?

1 Ответ

0 голосов
/ 20 января 2012

Я использовал это вне области jQuery:

$.griffinTableExtensions = {
    pageManagers: {},
    themeManagers: {}
};

Что позволяет мне использовать:

<script type="text/javascript">
    $(function () {
        $('#mytable').griffinTable({ fetchAtStart: true, themeManager: $.griffinTableExtensions.themeManagers.noTheme });
    });
</script>

Я только что зафиксировал плагин таблицы: https://github.com/jgauffin/Griffin.Table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...