예를 들어 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() 함수를 호출할 수 있다.
댓글 없음:
댓글 쓰기