2011-11-07 32 views
9

Thay thế cho sencha chạm 1.1 Ext.dispatch phương pháp trong sencha touch 2 là gì?Sencha touch 2- Ext.dispatch thay thế?

tôi cần thay thế cho mã bên dưới

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

Kiểm tra này http://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+0

Btw những gì đã Ruby on Rails 3 để làm với câu hỏi này? :-) – ilija139

Trả lời

3

Phương pháp Ext.dispatch vẫn còn tồn tại trong Sencha Touch 2: http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-method-dispatch

Nhưng nếu bạn chỉ không muốn sử dụng nó cho một số lý do, bạn có thể nhận được một Ví dụ về bộ điều khiển và phương thức gọi dicrectly:

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

?? Các phiên bản ngay cả trong người đàn ông liên kết! nó sencha 1,1 không 2! Kiểm tra http://www.sencha.com/forum/showthread.php?151239-Ext.dispatch-replacement – ilija139

+1

Bộ điều khiển xấu của tôi, nhưng vẫn tồn tại trong Sencha 2, chúng chỉ có một không gian tên 'Ext.app.Controller' khác. Bạn có thể gọi phương thức tĩnh 'getController' để lấy một thể hiện của controller và sau đó gọi một số phương thức từ nó. Hi vọng điêu nay co ich. –

1

Khi gọi shal được thực hiện từ bộ điều khiển, bạn sẽ có ứng dụng instan ce theo phương thức getApplication, có phương thức getControllerInstance trả về một mảng.

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

Trong sencha touch 2.0 để có được các trường hợp điều khiển từ bất cứ nơi nào sử dụng

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

nơi tên ứng dụng của bạn được thiết lập trong app.js

3

Hãy thử điều này, cần làm việc:

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

Hoặc, cách khác:

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

Bạn nên thêm một số giải thích vào lần tiếp theo bạn trả lời câu hỏi. Không chỉ đăng mã. –

Các vấn đề liên quan