如何在函数中包装 Ajax 权限检查?
How do I wrap Ajax rights checks in a function?
我通过 Ajax 进行权限检查:
Ext.Ajax.request({
url: [url_php],
params: {
ssid: Ext.util.Cookies.get("token"),
access_id: 1000000057
},
success: function(response, opts){
res = Ext.decode(response.responseText);
if (res.success == true) {
Ext.getCmp('CardUser').setHidden(false);
}
},
});
原来会有很多。这可以输出到一个单独的函数,例如,为了代码的紧凑性吗?
因此,您可以覆盖 Ext.Component 以在其中添加权限机制。它将是这样的:
Ext.define('overrides.Component', {
override: 'Ext.Component',
accessId: false,
initComponent: function () {
this.callParent();
if (this.accessId) {
this.checkPermissions()
}
},
checkPermissions() {
Ext.Ajax.request({
url: 'checkPermissions.json',
params: {
ssid: Ext.util.Cookies.get("token"),
access_id: this.accessId
},
success: function (response, opts) {
res = Ext.decode(response.responseText);
this.setHidden(res.success === true);
},
scope: this
});
}
});
'Ext.Component' 是所有 Ext 元素(文本字段、表单、网格.. 工具栏)的基础 class。所以所有的子组件都会得到这个特性。
在下面的 fiddle 示例中,gui 子元素发出 ajax 请求并在成功时隐藏自己:false(随机)。只需重新运行 应用程序即可查看结果。
当然,您必须根据需要编辑此解决方案。
该方案的缺点:
- 你会提出很多ajax的要求,这是不好的,最好
实施一些批处理模式机制。
- 如果组件在默认设置下是隐藏的,它将被显示,所以你也需要实现这个逻辑。
...
...
我通过 Ajax 进行权限检查:
Ext.Ajax.request({
url: [url_php],
params: {
ssid: Ext.util.Cookies.get("token"),
access_id: 1000000057
},
success: function(response, opts){
res = Ext.decode(response.responseText);
if (res.success == true) {
Ext.getCmp('CardUser').setHidden(false);
}
},
});
原来会有很多。这可以输出到一个单独的函数,例如,为了代码的紧凑性吗?
因此,您可以覆盖 Ext.Component 以在其中添加权限机制。它将是这样的:
Ext.define('overrides.Component', {
override: 'Ext.Component',
accessId: false,
initComponent: function () {
this.callParent();
if (this.accessId) {
this.checkPermissions()
}
},
checkPermissions() {
Ext.Ajax.request({
url: 'checkPermissions.json',
params: {
ssid: Ext.util.Cookies.get("token"),
access_id: this.accessId
},
success: function (response, opts) {
res = Ext.decode(response.responseText);
this.setHidden(res.success === true);
},
scope: this
});
}
});
'Ext.Component' 是所有 Ext 元素(文本字段、表单、网格.. 工具栏)的基础 class。所以所有的子组件都会得到这个特性。
在下面的 fiddle 示例中,gui 子元素发出 ajax 请求并在成功时隐藏自己:false(随机)。只需重新运行 应用程序即可查看结果。
当然,您必须根据需要编辑此解决方案。
该方案的缺点:
- 你会提出很多ajax的要求,这是不好的,最好 实施一些批处理模式机制。
- 如果组件在默认设置下是隐藏的,它将被显示,所以你也需要实现这个逻辑。 ... ...