2012-01-20 5 views
0

私はいくつかのデフォルトの実装を提供するプラグインにいくつかの拡張ポイントを持っています。それらのオブジェクトは、私のメソッドオブジェクトに属していませんが、依然として適切に名前空間を持つ必要があります。実際のプラグインに属していないメソッドを名前空間にするには?

これらの拡張機能の名前空間を設定するにはどうすればよいですか?

私はこれを行うことを試みた:

(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); 

をしかし、私は次のように外部からpageManagersthemeManagersにアクセスする方法を見つけ出すことはできません:私は名前空間とそれらを使用するにはどうすればよい

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

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

私が使用することができます:https://github.com/jgauffin/Griffin.Table

:私はちょうどテーブルのプラグインを犯し

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

答えて

0

私はjQueryの範囲外で、これを使用しました
関連する問題