2012-06-06 7 views
2

ExtJs 4.1 및 DeftJs를 사용합니다.ExtJs - 여러 인스턴스를 사용할 때 구성 요소의 ID를 설정하는 방법

동일한보기의 여러 인스턴스를 동시에 사용하는 경우 모든 인스턴스가 동일한 ID를 가지므로 id: 'abc'이라는 구성 요소를 처리하는 데 문제가 있습니다.

그래서 이것을 방지하기 위해 ID 이름을 어떻게 지정합니까?

하나의 옵션은 동적으로 구성 요소를 만드는 것입니다.

내가 좋아하는, 단지 특정 뷰의 ID에 의해 구성 요소를 호출 선호하는 또 다른 방법 : 당신은 고유 ID로 부모 요소를 설정할 수있는 경우

this.getView.getComponent('x').getId('abc')

답변

0

내가 글로벌 ID를 방지하고 나의보기에 액세스하기 위해 컨트롤러에서 this.getView().getComponent()를 사용하려고합니다. 필요한 경우 내 ID 이름에 고유 한 문자열을 추가로 사용합니다.

2

, 당신은 항목 ID를 사용할 수 있습니다 자식 항목에 대한 속성 엽차의 문서에서이 예는 (아래 링크에서 촬영) :

var c = new Ext.panel.Panel({ // 
height: 300, 
renderTo: document.body, 
layout: 'auto', 
items: [ 
    { 
     itemId: 'p1', 
     title: 'Panel 1', 
     height: 150 
    }, 
    { 
     itemId: 'p2', 
     title: 'Panel 2', 
     height: 150 
    } 
] 
}) 
p1 = c.getComponent('p1'); // not the same as Ext.getCmp() 
p2 = p1.ownerCt.getComponent('p2'); // reference via a sibling 

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.AbstractComponent-cfg-itemId

+0

감사하지만이보기에서 고유 ID를 설정할 수 없기 때문에이 뷰/컨트롤러의 mvc 및 많은 인스턴스와 관련이 없습니다. 컨트롤러를 통해 특정보기를 지정하려고합니다. – Patrick

관련 문제