2012-08-29 3 views
4

내가 예를 들어, 세 개의 최상위 응용 프로그램을 수 있도록 내 ExtJS로 4 프로젝트를 설정하기 위해 노력하고,ExtJS 4에는 외부 구성 요소를로드 할 수있는 방법이 있습니까?

/foo/app.js
/bar/app.js
/바즈/응용 프로그램. js

각 '최상위'응용 프로그램은 별도의 ExtJS 응용 프로그램이며 각 응용 프로그램마다 고유 한 로더가 있습니다. 어떤 경우에는 세 가지 응용 프로그램간에 공유하려는 일반 구성 요소가 있으므로 최상위 디렉터리 /components이 있습니다.

나는 구성 요소 이름이있는 경우 ComponentA 말,

/components/componenta.js 나는 세 가지 응용 프로그램에 ComponentA을 받고 가겠어요, 그래서 참조하거나 확장 할 수 방법

개별 신청서?

답변

10

각 응용 프로그램에 동일한 로더를 추가 할 수 있습니다. app.js 파일. 당신이 최상위 폴더를 정의하고 구성 요소를 배치 할 때

Ext.Loader.setPath('Common', '../components/'); 

는 그런 다음 공통 구성 요소와 동일한 네임 스페이스를 제공합니다. 각 응용 프로그램에서 확장하는

componenta.js

Ext.define('Common.componenta', { 
    extend: 'Ext.panel.Panel', 
    title: 'Component A' 
}); 

그런 다음 일반적인 네임 스페이스는

Ext.define('Foo.panel', { 
    extend: 'Common.componenta', 
    title: 'Foo Panel' 
}); 
+2

Upvoted.Here 정확하게이 패턴을 설명하는 엽차 포럼에 대한 최근의 논의이다 사용할 수 있습니다 더 자세하게. http://www.sencha.com/forum/showthread.php?238496-How-to-extend-a-Ext.app.Application&p=875700 – mistaecko

+1

고마워, 그 때가 훨씬 더 솔직 해졌을거야. –

관련 문제