2010-05-20 2 views
0

Я не могу найти способ сделать django-dajaxice своим обратным вызовом внутри того же объекта с областью, из которого сделан начальный вызов.Как сделать обратный вызов Dajax в объект с областью

MyViewport = Ext.extend(MyViewportUi, { 
    initComponent: function() { 
     MyViewport.superclass.initComponent.call(this); 
    }, 

    LoadRecordsCallback: function(data){ 
     if(data!='DAJAXICE_EXCEPTION') 
     { alert(data); } 
     else 
     { alert('DAJAXICE_EXCEPTION'); } 
    }, 

    LoadRecords: function(){ 
     Dajaxice.Console.GetUserRecords(this.LoadRecordsCallback); 
    } 
}); 

var blah = new MyViewport(); 
blah.LoadRecords(); 

Я нахожусь на django и как синтаксис вызова django-dajaxice. Я использую Extjs 3.2 и пытаюсь передать Ext.createCallback, но возвращаемый eval Dajax, похоже, хочет только строку для обратного вызова.

ответ

1

BozoJoe, это должно работать.

MyViewport = Ext.extend(MyViewportUi, { 
    initComponent: function() { 
     MyViewport.superclass.initComponent.call(this); 
    }, 

    LoadRecordsCallback: function(data){ 
     if(data!='DAJAXICE_EXCEPTION') 
     { alert(data); } 
     else 
     { alert('DAJAXICE_EXCEPTION'); } 
    }, 

    LoadRecords: function(){ 
     Dajaxice.Console.GetUserRecords('blah.LoadRecordsCallback'); 
    } 
}); 

var blah = new MyViewport(); 
blah.LoadRecords(); 
+0

Jorge Я считаю, что к этому моменту вы потянули мои изменения, что позволило моей просьбе. Большое большое спасибо! Там я хочу дать вам кредит на ответ, если вы получили ответ, который мне не нужен. – BozoJoe

0

Я вообще не знаком с джанго, но я думаю, что понимаю проблему.

Кажется, что API обязывает передать строку, которая будет отображаться как вызов функции, поэтому вы должны передать имя функции, а не самой функции.

Это, в свою очередь, означает, что это должно быть имя, которое имеет смысл в области окна - либо функция, определенная вне класса Ext (например, «myGlobalFunction»), либо функция-член класса Ext, доступная как переменная (например, «window.blah.LoadRecordsCallback»)

Смежные вопросы