예를 들어 common.ui 라는 이름의 패키지를 정의하고 싶다면,
var common = window.common = window.common || { };
common.ui = {};
개인적으로는 다음과 같이 JQuery.extend 함수를 사용하는 것을 더 선호한다.
$.extend(common, {ui:common.ui||{}});
그럼 더 나아가서 다음과 같은 패키지 구조를 생각한다.

먼저 common.ui.core.js , common.ui.data.js 스크립트 파일을 생성한다.
common.ui.core.js
;(function($, undefined) {
 var common = window.common = window.common || { },
 extend = $.extend;
 extend(common, { 
  ui: common.ui || {} 
 });
})(jQuery);
common.ui.data.js
;(function($, undefined) {
 var ui = common.ui,
 extend = $.extend;
 extend(ui, { 
  data: common.ui.data || {} 
 });
})(jQuery);
이제 common.ui 패키지에 kendo 프레임워크의 DataSource 객체를 미리 정의된 프로퍼티 값으로 생성하는 datasource 라는 함수를 추가하여 보자. 기존의 common.ui.core.js 파일에 추가하여도 되고 별도의 파일을 생성하여도 무관한다.
;(function($, undefined) {
 var ui = common.ui,
 extend = $.extend;
 
 function handleAjaxError(xhr) {
  // do something
 }
 var DEFAULT_DATASOURCE_SETTING = {
  transport:{
   read:{
    type :POST,
    dataType : JSON
   }     
  },
  serverPaging: true,
  error:handleAjaxError, 
  pageSize: 10  
 };
 function datasource(url, options){  
  options = options || {};  
  var settings = extend(true, {}, DEFAULT_DATASOURCE_SETTING , options ); 
  if( defined(url) ){
   settings.transport.read.url = url;   
  }  
  var dataSource =  DataSource.create(settings);
  return dataSource;
 };
 
 extend (ui, {
  datasource : common.ui.datasource || datasource
 });
})(jQuery);
이제 HTML 에서 자바스크립트 파일을 선언하고 common.ui.datasource() 함수를 호출할 수 있다.
 
댓글 없음:
댓글 쓰기