Advertisement
pixycz

My Module Template (based on RequireJS)

Jan 29th, 2014
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // module ui/controls/somecontrol
  2.  
  3. //  ######################################## module header
  4.  
  5. define(
  6.     'ui/controls/somecontrol',
  7.  
  8.     // required modules
  9.     [
  10.         'env',
  11.         'util/math.geo',
  12.         'util/ui.utils',
  13.         'ui/controls/anothercontrol'
  14.     ],
  15.     // define module
  16.     function(
  17.         // local names for required modules
  18.         ENV,
  19.         UTIL_MATH_GEO,
  20.         UTIL_UI,
  21.         CTRL_ANOTHER
  22.     ){
  23.  
  24. //  ######################################## private
  25.  
  26.     var localPrivateValue = 123;
  27.    
  28.     function localPrivateFn() {
  29.         // ... private function code
  30.         }
  31.  
  32. //  ######################################## public
  33.  
  34. // Control: SomeControl
  35.  
  36.     var Control = function(options){
  37.         var defaults = {
  38.             prop1: 'option 1 default value',
  39.             prop2: 'option 2 default value',
  40.             // ...
  41.             propX: 'whatever'
  42.             }
  43.         this.options = $.extend(defaults,options);
  44.  
  45.         // ... Control contructor
  46.         // ... goes here
  47.         }
  48.  
  49.     Control.prototype.method1 = function(){
  50.         // ... Method code
  51.         // ...
  52.         }
  53.  
  54.     Control.prototype.method2 = function(a,b){
  55.         // ... Method code
  56.         // ... example other module usage:
  57.         var x = UTIL_MATH_GEO.calculate(a,b);
  58.         // ... or
  59.         var ctrl = new CTRL_ANOTHER({
  60.             prop1: x,
  61.             prop2: this
  62.             // ...
  63.             })
  64.         // ...
  65.         }
  66.  
  67.     // ... etc.
  68.  
  69. //  ######################################## propagate public
  70.  
  71.     return Control;
  72.  
  73.     })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement