这是我的store.js 我已经将app.js中的appid定义为全局变量并在某些页面中赋值,但仍然显示全局变量undefined.please提供答案。
Ext.define('Application.store.online.ApplicationDev', {
extend : 'Ext.data.Store',
storeId : 'appliaction',
autoLoad : false,
pageSize : 18,
fields : ['total'],
proxy : {
type : 'ajax',
url : 'GetApplicationIDList',
reader : {
type : 'json',
totalProperty : 'total'
},
extraParams : {
param : '{params:{appid:"'+Application.app.globals.appid+'"}}'
}
}
});
答案 0 :(得分:0)
如果您已在浏览器控制台中检查了appid确实已在应用程序中设置,但未在商店代理上设置,则唯一可能的原因是设置appid的代码在定义商店的代码之后执行。
商店定义很快就会在文件读取后立即执行。
您可以尝试在商店实例的构造函数中设置值是否有帮助。当基于定义创建商店实例时,实例构造函数将在稍后执行。
Ext.define('Application.store.online.ApplicationDev', {
extend : 'Ext.data.Store',
storeId : 'appliaction',
constructor: function() {
this.callParent([{
autoLoad : false,
pageSize : 18,
fields : ['total'],
proxy : {
type : 'ajax',
url : 'GetApplicationIDList',
reader : {
type : 'json',
totalProperty : 'total'
},
extraParams : {
param : '{params:{appid:"'+Application.app.globals.appid+'"}}'
}
}
}]);
}
});
如果这还为时尚早,可以在beforeload事件中设置extraParams,该事件甚至更晚(直接在第一次调用服务器之前)执行。
Ext.define('Application.store.online.ApplicationDev', {
extend : 'Ext.data.Store',
storeId : 'appliaction',
autoLoad : false,
pageSize : 18,
fields : ['total'],
proxy : {
type : 'ajax',
url : 'GetApplicationIDList',
reader : {
type : 'json',
totalProperty : 'total'
}
},
listeners: {
beforeload: function(store) {
store.getProxy().setExtraParam("param",
'{params:{appid:"'+Application.app.globals.appid+'"}}'
);
}
}
});