동적으로 구성된 컨트롤러/뷰 세트가 있으며 각각에 "선택기"목록과 "컨테이너"가 있으며 이러한 컨테이너에는 다른 선택기 + 컨테이너 쌍이있을 수 있습니다. 동일한 루트 선택기 + 컨테이너 컨트롤러의 인스턴스입니다. 하위 요소에 대한 ComponentQuery 선택자
이
는 컨트롤러의 제목 정의 (추상 클래스)입니다 :Ext.define('MyApp.controller.explorer.Base', {
extend: 'Ext.app.Controller',
refs: [
{ref: 'explorerContainer', selector: '[itemId="explorerContainer]'},
{ref: 'explorerSelector', selector: '[itemId="explorerSelector]'}
],
것은 나는 그런 내 컨트롤러의 하위 요소에 맞게 ComponentQuery 선택해야 모르겠어요입니다 itemId. 구성 요소와 일치시키기 위해 [itemId = "explorerContainer"]를 사용하므로 전역 적으로 수행하므로 구성 트리에서 최상위 컨테이너에 응답합니다.
이전의 실험에서 ExtJS 3을 사용하여 myComponent.getComponent ('...')를 사용하여 하위 요소에 액세스했지만 이제는 getComponent()가 없으므로 ExtJS 4에서 해당 요소를 찾을 수 없습니다.
미리 감사드립니다.
예, 저는 컨트롤러와 뷰를 혼합했습니다. MVC (MVP가 실제로는) 컨트롤러와 뷰가 항상 함께 있습니다. ">"연산자는 ComponentQuery 선택기 구문에서 이해하지만 전역 변수이므로 작동하지 않으며 아이가 얼마나 깊은 지 미리 알지 못합니다 (동적으로 생성 된 GUI를 생각해보십시오). 내보기 구성에서 다음과 같이 구성된 선택기 (S) 및 컨테이너 (C)를 가질 수 있습니다. ViewPort (S, C (S, C (S, C (S, C (...))))))) . – emaringolo
깊이를 모르는 경우 "viewport mycontainer [property = value]"를 사용하십시오 – dbrin
하지만 어떤 속성이 다른지 모르는 경우 어떻게해야합니까? 나는 모든 인스턴스에 태그를 지정하고 싶지 않다.이 Selector + Container 쌍은 그 자체에 대해서만 알고 있어야하며, 다른 것들에 임베디드 될 수 있어야한다. 그것은 시간의 시작부터 스몰 토크에서 작업해온 일반적인 MVC/MVP 패턴입니다. ExtJS4에서 동일한 작업을 수행하는 방법을 모르겠지만 아래 답변은 제가 찾고있는 것입니다. – emaringolo