extjs Uncaught RangeError: Maximum call stack size exceeded
描述:
引发这一异常的原因可能有多个,这里我只记录我碰到的原因。
我在一个store的beforeload事件监听器里添加了需要发送到后台的参数,代码片段大致如下:
找了半天,发现问题在于我的参数view:this.view,其中this.view是我的视图对象,即界面上可以看到的一个组件,由于该对象包含的属性,方法,还有嵌套属性很多,所以当extjs的框架代码调用encodeObject方法时,抛出了上面说的异常。
解决方案:
显然我不应该把视图对象作为参数传到后台,没有意义,定义自己的Object,然后添加所需的属性即可。
描述:
引发这一异常的原因可能有多个,这里我只记录我碰到的原因。
我在一个store的beforeload事件监听器里添加了需要发送到后台的参数,代码片段大致如下:
beforeload : function(store, operation, eOpts) {
operation.params = {
perspectiveId:this.perspectiveId,
viewId:this.viewId,
elementId:this.elementId,
criteria:this.criteria,
currency : this.currency,
view : this.view
};
return true;
}
找了半天,发现问题在于我的参数view:this.view,其中this.view是我的视图对象,即界面上可以看到的一个组件,由于该对象包含的属性,方法,还有嵌套属性很多,所以当extjs的框架代码调用encodeObject方法时,抛出了上面说的异常。
解决方案:
显然我不应该把视图对象作为参数传到后台,没有意义,定义自己的Object,然后添加所需的属性即可。