如何使Dajax回调成范围对象

时间:2010-05-20 17:13:01

标签: ajax django extjs

我似乎无法找到一种方法让django-dajaxice在同一作用域对象中进行回调,从而进行初始调用。

 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但是Dajax的返回eval似乎只想要一个回调字符串。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

我根本不熟悉django,但我想我理解这个问题。

似乎API要求您传递一个字符串,该字符串将作为函数调用进行评估,因此您必须传递函数的名称,而不是函数本身。

这反过来意味着它必须是在窗口范围内有意义的名称 - 在Ext类之外定义的函数(例如“myGlobalFunction”),或Ext类的成员函数,可以作为变量(例如“window.blah.LoadRecordsCallback”)