2011-11-07 1 views
9

Что такое замена sencha touch 1.1 Ext.dispatch метод в сенчата touch 2?Sencha touch 2- Замена запасной части?

мне нужна замена для кода ниже

listeners:{ 
    itemtap:function(data,index){ 
     var record = data.getStore().getAt(index); 
     // the record that has been clicked. 
     Ext.dispatch({ 
      controller: 'ControllerName' 
      ,action: 'ControllerMethod' 
      ,record: record 
     }); 
    } 
} 
+1

Проверить это http://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+0

Btw что имеет рубин на рельсах 3, чтобы сделать с этим вопросом? :-) – ilija139

ответ

3

Метод Ext.dispatch все еще существует в Сенча Touch 2: http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-method-dispatch

Но если вы просто не хотите использовать его по какой-то причине, вы можете получить пример контроллера и метод вызова:

Ext.ControllerManager.get('ControllerName').ControllerMethod({record: record}); 
+1

?? Версия даже в ссылке человек! это sencha 1.1 not 2! Проверьте это http://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+1

Мои плохие, но все же контроллеры существуют в Sencha 2, они просто имеют другое пространство имен 'Ext.app.Controller'. Вы можете вызвать статический метод 'getController', чтобы получить экземпляр контроллера, а затем вызвать из него какой-то метод. Надеюсь это поможет. –

1

Когда вызов будет выполнен с контроллера, у вас будет экземпляр приложения на getApplication метод, есть способ getControllerInstance, который возвращает массив.

this.getApplication().getControllerInstances()['yourcontrollername'].yourmethod(yourparams) 
8

В сенче прикосновении 2.0, чтобы получить экземпляры контроллера из любого места с помощью

<your app name>.app.getController('your controller name'); 

где имя вашего приложения установки в app.js

3

Попробуйте это, он должен работать:

window['AppName'].app.getController('ControllerName').MethodName(Args) 

Или, альтернативно:

window['AppName'].app.dispatch({ 
    controller: 'ControllerName', 
    action: 'MethodName', 
    args:ArgsArray 
} 
-1
yourAppName.getApplication().getController('yourControllerId').yourMethodName(args); 
+1

Вы должны добавить некоторое объяснение в следующий раз, когда вы ответите на вопрос. Не просто отправляйте код. –