我试过像这样制作一个extjs全局变量类:
Ext.define('ccc.global.GlobalVariables', {
singleton: true,
username: 'hi user',
password: '',
clientID: '',
token: ''
});
然后在控制器中我尝试更改变量:
ccc.global.GlobalVariables.username = loginData.username;
现在我正在尝试在不同的模型代理中访问这些变量,并且它会不断返回'hi user'
的原始值。
proxy: {
type: 'ajax',
extraParams: {
'username': ccc.global.GlobalVariables.username
},
任何人都能看到我做错了什么?
答案 0 :(得分:5)
当在代理定义中使用变量时,变量内容在定义时设置到代理中,而不是在实例化时,尤其是在使用时。它不会自动更新。
这就是为什么,至少对于组件,有bind
属性明确告诉组件哪个配置绑定到外部源,以便在更新源时自动更新。
IIRC代理不支持可绑定的mixin,因此您必须在每次sync / load / ...操作之前手动设置extraParam:
store.getProxy().setExtraParam("username",ccc.global.GlobalVariables.username);
store.load()