2012-09-25 2 views
0

ExtJS 4의 동적로드에보다 전통적인 속성 클래스를 통합하는 방법이 궁금합니다. 다음과 같이 ext3로, 나는 특성의 집합을 만들 것입니다 :ExtJS4에서 속성을 만드는 가장 좋은 방법은 무엇입니까?

org.config.appName = "appname"; 
org.config.browser = {}; 
org.config.browser.Browsers = [ 
    { 
     name: 'Chrome', 
     .... 
    } 
]; 

내가 조직에서 확장 된 개체의 집합을 만든 것 또한 상상을 :

EXT4에서
org.foo = Ext.extend('Ext.Panel', { 
    ... 
}); 

, 나는 속성을로드 할 때 org가 만들어지지 않았으므로 오류가 발생합니다. if(typeof org === 'undefined') { org = {}; }

  • 동적으로 싱글로 속성을로드 :

    1. 조직 정의 :

      Ext.define('org.config',{ 
          singleton: true, 
          appName: "appname", 
          browser: { 
           Browsers: [ 
            { 
             name: 'Chrome', 
             ... 
            }, 
            ... 
           ] 
          } 
      }); 
      

    어떻게 할 옵션이 나는 문제를 해결하는 방법은 두 가지를 믿고, 나를 잎 1은 동적으로로드 된 객체에 영향을 줍니까? 옵션 2가 속성 집합을 만드는 가장 좋은 방법입니까? 세 번째 옵션을 놓치고 있습니까? 도움을 감사하십시오!

  • 답변

    0

    옵션 2는 잘 작동합니다.

    Ext 버전과 관계없이 JavaScript는 루트 객체를 처음 만들지 않고도 "네임 스페이스"객체를 만들 수 없습니다. Ext에는 네임 스페이스 기능이있어 전체 앱용으로 생성되었습니다. 4.0부터 Ext.application을 사용하여 네임 스페이스를 설정하고 Ext.define을 사용하여 네임 스페이스 클래스를 만듭니다.

    나는 동적으로로드 된 객체에 의해 당신이 무슨 뜻인지 아주 명확하지 않다 ...

    +0

    감사합니다! 필자는 옵션 2로 끝났습니다. 동적 인로드 (내 파트에서 잘못 부름)와 관련하여, 저는 주로 버전 4의 새로운 컴포넌트 모델 (Ext.define ('org.obj', {}))을 참조했습니다. ')는 "네임 스페이스"해결책을 추상화합니다. –

    +0

    이 안내서는 http://docs.sencha.com/ext-js/4-1/#!/guide/class_system에서 볼 수 있습니다. – dbrin

    관련 문제