2011-08-27 2 views
0

현재 컨트롤러를 사용하지 않는 Sencha Touch 앱에서 작업하고 있습니다. Ext.Router를 사용하여 방문객을 패널의 특정 카드로 가져오고 싶습니다. 엄격한 MVC 설정을 사용하지 않고도 Ext.Router를 사용할 수 있다는 제안을 보았습니다. 그러나 API의 예 (: http://dev.sencha.com/deploy/touch/docs/?class=Ext.Router 참조)과 같습니다 예를 들어, 패널에서 특정 카드를 제시 할 map.connect에 기능을 넣을 수있는 방법이Sencha : MVC 구조 외부에서 Ext.Router 사용

map.connect('dashboard', {controller: 'home', action: 'index'}); 

있습니까?

두 번째 질문 :이 문제와 씨름을해볼 가치가 있습니까? 아니면 컨트롤러로 응용 프로그램을 업데이트하는 것이 더 쉬울까요? (개발 초기에 꽤 작은 응용 프로그램이었고, 우리가 그 경로를 간다면 컨트롤러가 3 대가 될 것입니다.)

답변

0

라우터는 컨트롤러와 약간의 결혼을했으며, 묻습니다. 당신이하려고하는 것은 URL 해시를 기반으로하는 카드를 보여 주며 나중에 컨트롤러를 구현하는 것입니다. 만약 컨트롤러를 사용하지 않고 컨트롤러를 사용하지 않으려 고한다면 마음은 Ext.History는 URL 해시가 변경되면 '변경'이벤트를 발생시키고, 해당 이벤트를 수신하고 내가 가정 한 적절한 조치를 취할 수 있습니다.

+0

감사합니다.이 질문은 내 질문에 대한 답변입니다. 컨트롤러를 사용하는 것으로 이동합니다. – bjudson

1

나는 주어진 질문을 재구성 할 시간이 없었기 때문에 나는이 같은 질문을 가지고 있었고 컨트롤러를 사용하지 않는 것에 지쳤다. 선택한 포스트처럼 마지 못해 Ext.History 클래스를 사용했다. 당신이 당신의 onReady 기능이 호출 경우는 URL로 myPanel 패널 활성화 : www.mypage.com/#my-url-slug

function initialiseHistory() { 
    Ext.History.init(); 
    urlToken = Ext.History.getToken(); 
    if(urlToken == 'my-url-slug') { 
     Ext.getCmp('tabpanel').setActiveItem('myPanel', false); 
    } 
} 

내가 아는 더러운를 ..하지만 일을했다.