如何在dojo中处理不是函数错误?

时间:2010-12-27 19:05:44

标签: javascript javascript-events dojo

我在dojo中获取not a function error函数的callChart。我正在开发一个网站,它使用 excanvas 在浏览器上绘制一些图表。

在页面加载时,我有一个Ajax调用,它获取一些数据库值并将它们传递给callChart:function(),这个callChart函数调用excanvas进行制图。但在这里我得到了callChart is not a function

代码段如下所示:

onload我正在执行

 drawChart : function(){     
     this.chart(true);     
 },

chart: function(flag){
 dojo.xhrPost( {
 url : "/charting.html", 
 load : function(data){
          loadChart(data);
},
 error : function(error){
         console.error(" occured while fetch chart" );
    }
  } );

成功回调方法

loadChart : function(response){
        this.callChart(response);

},

这是我的callChart,

callChart:function(chartData){
----
----
},

当我调用this.callChart(响应)时,我收到了firebug错误“this.callChart(response) is not a function”。

非常感谢任何帮助,指导或建议。

1 个答案:

答案 0 :(得分:1)

你的“this”是回调机制(dojo.Deferred)。使用dojo.hitch来修复上下文:

chart: function(flag){
 dojo.xhrPost( {
 url : "/charting.html", 
 load : dojo.hitch(this, function(data){ // changed this line
          this.loadChart(data); // added "this"
 }); // close paran
}