我有一个商店,我需要在其代理中添加一些标头。我不想使用Ext.Ajax单例的defaultHeaders,因为这些仅限于几家商店。
标头使用键/值对,并且值来自最初加载存储时未加载的变量,成功登录后填充变量。
由于这个原因,我无法在代理或商店上使用构造函数,因为我用于标题值的变量是不可用的。
我能让它工作的唯一方法是使用beforeLoad商店。这真的是实现这一目标的最佳方式吗?
这是我店里的听众,我正在检查是否因为每次都被解雇而未定义。
listeners: {
beforeload: function( store, operation, eOpts ) {
if (this.proxy.headers === undefined) {
this.proxy.headers = {
'X-GType': CompA.Items.getGtype().get('type'),
有没有人知道更好的方法?
似乎不会只发生一次事件。
答案 0 :(得分:1)
作为“仅触发一次事件”问题的一般答案 - 您可以将侦听器配置为在一个事件后自动取消。
listeners: {
'beforeload': {
fn: function(...),
single: true
}
}
答案 1 :(得分:0)
一般情况下,如果您在“关键”之后创建视图会更好。商店已加载。这意味着您最有可能需要在应用程序主文件中将autoCreateViewport设置为false。然后在商店成功回调中手动创建它。挂起init()方法来做到这一点。
示例:(伪代码)
App.js
B