2014-12-10 2 views
0

센차 터치에서 제대로 작동하지 않습니다와 나는 두 개의 "의 getParent()"를 "최대"방법이 작동하지 않기 때문에 사용하고까지 방법은 내가 센차 터치 함께 일하고

var formpanel = button.getParent().getParent().down('formpanel'); //working correctly but tricky 

다음 코드 라인을 가지고 나

var formpanel = button.up('formpanel'); //No-working 

하고 뷰

items: [ 
      { 
       xtype: 'toolbar', 
       title: 'test', 
       docked: 'top', 
       items: [{ 
        xtype: 'button', 
        iconCls: 'info', 
        style:{ 
         'margin-left': '75em' 
        } 
       }] 
      }, 
      { 
       xtype: 'formpanel', 
       layout: 'hbox', 
       scrollable: null, 
       items: [] 
      } 

어떤 단서?

감사합니다.

+1

와 비슷? 당신은 구조를 보여주지 않았으므로 대답 할 수 없습니다. –

+0

수정 됨 @EvanTrimboli – inane

+0

폼이 버튼의 조상이 아니므로'up'을 사용할 수 없습니다. –

답변

0

sencha docs에 따라 때문에 작동하지 않습니다 :

up([selector]) :전달 간단한 선택 일치하는 조상 컨테이너 찾고 ownerCt 축을 산책.

따라서, 귀하의 경우 버튼의 조상에, 당신은 도구 모음 또는 도구 모음의 부모를 얻을 수 없습니다은 FormPanel .Using up()도구 모음 및 도구 모음의 부모,하지만 있습니다 이 아닌formpanel입니다. 그 대신 다음 코드를 사용할 수 있습니다 :

첫 번째 코드

var formpanel = button.up(<XtypeOfToolbarParent>).down('formpanel'); 

또는

두 번째 코드 : 버튼 형태의 직접적인 아이 getParent()

var formpanel = button.up().up().down('formpanel'); 
+0

완벽하게, 첫 번째 옵션이 올바르게 작동합니다. , 고마워! – inane

0

나는이 선택을 선택한 이유를 이해하지 못합니다. 어쨌든, 당신의 필요성은 오직 몇 줄로 만 이루어질 수 있습니다. 먼저 formpanel에 클래스를 추가하십시오 (없는 경우). 예 : cls: 'form-panel'

컨트롤러에는 양식이 들어있는 컨테이너의 xtype 참조를 가져옵니다. 이제 컨트롤러에이 라인을 가진은 FormPanel을 잡을 수

예를 formContainer: 'formcontainer'에 대한 말 :

this.getFormContainer().element.down('.form-panel');

그것이 당신을 도와줍니다 여부를 말해.

+0

죄송합니다. 작동하지 않습니다 :-( – inane

+0

여기에서 전체보기와 컨트롤러 코드를 복사 할 수 있습니까? –