2011-05-10 4 views
4

이것은 내 이전 질문 here에서 이어집니다.
약 1 년 동안 ExtJs 3.x로 개발해 왔으며 ExtJs4로 마이그레이션하고 싶습니다.
가 나는 아래처럼 내 ExtJS로 파일을 코딩하는 데 사용하고 있습니다 :ExtJs3를 ExtJs4로 변환 하시겠습니까?

ReportsPanel = function(config){ 
config = config || {}; 

    function dummyFunction(){ 
     //I would usually have methods in this file also. 
    } 

    Ext.apply(config, { 
     title: 'Reports', 
     layout: 'border', 
     id: 'reportsPanel', 
     closable: 'true', 
     items: [] 
    }); 

    ReportsPanel.superclass.constructor.call(this, config); 
}; 
Ext.extend(ReportsPanel, Ext.Panel, { 
    dummy: dummyFunction//Make the dummy function available to call 
}); 

그리고이 인스턴스화이 켜지지 곳 new ReportsPanel()와 함께.

나는 많은 다른 ExtJs 4 코드 예제를 보았으며 솔직히 조금 혼란 스럽다.
Ext.define 메서드를 사용해야한다는 것을 알고 있습니다. 나는 그저 머리를 감싸는 것처럼 보인다.
위 예제를 ExtJs4로 변환하면 어떻게됩니까?

답변

4

은 다음과 같이 수 :

Ext.define('ReportsPanel', { 
    extend: 'Ext.panel.Panel', 

    // default parameters 
    title: 'Reports', 
    layout: 'border', 
    closable: true, 

    // custom variables. 
    foo: 'my var', 
    bar: 'baz', 

    constructor: function(config) { 
     // ... do something in constructor if you need. 


     this.callParent(arguments); 
    }, 

    dummyFunction: function(){ 
     this.foo = 'bar'; 
     this.bar = 'my var'; 
    } 
}); 
+0

덕분에 당신의 응답을. 어떻게 Ext.define 내부에 private 변수와 함수를 만들 수 있습니까? 또한 내 ExtJs 3 코드에서 나는'var = someVar'을 많이 가지고 있는데 그것들을 모두'var : someVar'로 바꾸거나 그것을 수행하는 가장 좋은 방법은 무엇입니까? – shane87

+0

개인 변수 또는 함수를 선언 할 수 없다는 것을 알고있는 한. 귀하의 두 번째 질문에 관해서는, 당신은 속성과 같은 방식으로 변수를 할당하고 "this"속성을 통해 함수 내에서 변수에 접근 할 수 있습니다. 나는 그것을 보여주기 위해 나의 모범을 업데이트했다. – ischenkodv

+0

private 변수 나 함수를 선언 할 수는 있지만 그렇게하기 위해 Ext.define을 클로저로 둘러 싸면 해당 private 변수/함수는 Ext.define과 동일한 클로저 범위에서 선언됩니다 –

관련 문제