我有一个用ExtJs 7编写的更大的应用程序。现在,我需要从某个点开始向所有ajax-calls和ajax-store-calls添加一个extra-Parameter。
要改变所有的ajax-calls和所有的stores需要做大量的工作,所以我们的想法是定义一个override或prototype,在那之后完成的所有调用都应该使用new参数。
我试过:
Ext.override(Ext.Ajax, { extraParams: {myNewParam:'New Param' }});
和
Ext.Ajax.extraParams =
{ myNewParam:'New Param'
};
和
Ext.Ajax.prototype.extraParams =
{ myNewParam:'New Param'
};
但是myNewParam要么没有传输,要么我得到JavaScript错误。
做这件事的正确方法是什么?
1条答案
按热度按时间xqk2d5yq1#
我不确定这是你需要的,但这是一种可能性。
您可以使用附加到
Ext.Ajax
的事件侦听器,该侦听器在每个请求之前执行。有一个beforerequest
事件,请查看此处的文档。在应用程序中找到一个只运行一次的位置,例如在
Application.js
中。加上这个:您需要以某种方式确定是否需要为这个特定请求添加新的额外参数。
在上面的函数中,所有请求选项都在
options
参数中。例如,您在options.url
中有URL,在options.params
中有参数。你可以添加额外的param,比如:
(You可以在这里做很多其他的事情,例如你可以用
return false;
等取消请求。