2012-03-30 5 views
0

저는 ExtJS에 익숙하지 않고 방금이 문제를 해결하기 위해 몇 시간을 보냈지만 그렇게 할 수 없었습니다. 나는 onLaunch 함수를 가진 컨트롤러를 가지고 있지만 절대로 호출되지 않는다.ExtJS 컨트롤러에서 onLaunch 함수가 호출되지 않았습니다.

응용 프로그램 'launch'기능에 내 컨트롤러의 .js 파일을 포함 시켰습니다. 이것이 컨트롤러의 'init'기능을 'onLaunch'로 변경 한 이유입니다. 'init'이 애플리케이션 'launch'와 'onLaunch'전에 호출 된 것을 읽었습니다. ... 여기

컨트롤러 파일

나는 나의의 .js 파일을 읽을 수있는 'CONSOLE.LOG'로 확인하고는, 그래서 'onLaunch'기능이없는 이유를 이해하지 않습니다 코드이 내 첫 번째 응용 프로그램, 정말 간단하고 나는 시작하기 전에 몇 가지 변경을 원했고 : 나는 'BROWER CONTROL'메시지하지만 결코 'ONLAUNCH'을 볼 수 있습니다

console.log('BROWSER CONTROL'); 

Ext.define('WSR.controller.BrowserControl', { 

    extend: 'Ext.app.Controller', 

    views: [ 
     'Browser' 
    ], 

    onLaunch: function() { 
     console.log('ONLAUNCH BrowserControl'); 

     this.control({ 
      'viewport > panel': { 
       render: this.onPanelRendered 
      }, 
      'browser': { 
       selectionchange: this.onSelectionChanged 
      } 
     }); 
    }, 

    onPanelRendered: function() { 
     console.log('PanelRendered'); 
    }, 

    onSelectionChanged: function() { 
     console.log('SelectionChanged'); 
    } 
}); 

방화범 콘솔에서.

나를 도와 줄 사람이 있습니까?

답변

1

코드가 클래스를 정의하기 만합니다 (즉, Ext.Define 메쏘드). 그러나 인스턴스화하지 않습니다. 실제로 인스턴스를 작성하려면 정의 된 클래스에서 Ext.create으로 호출해야합니다. 나는 당신의 onLaunch 기능이 호출 될 것으로 생각합니다. 자세한 내용은 연결된 ExtJS 설명서를 참조하십시오.

+0

당신 말이 맞지만 컨트롤러를 인스턴스화 할 적절한 위치를 찾을 수 없습니다. 마지막으로 응용 프로그램의 '컨트롤러'속성을 사용하여 .js 파일을로드하고 클래스를 인스턴스화합니다. 내 프로젝트 매니저는이 방법을 원하지 않지만 훨씬 쉬워 보입니다. 대답 해줘서 고마워. – Malex

+0

Sencha는 또한 일반적으로 제어 함수 호출을 init 함수에 넣는 것을 권장합니다. – ottobar

관련 문제