【发布时间】:2017-11-07 14:55:51
【问题描述】:
简介: 我需要调用后端控制器来查看用户是否是管理员。如果用户是非管理员,则隐藏应用程序中的工具栏。目前 var 正在成功更改;但是,在创建视图后它会发生变化,导致视图始终使工具栏可见。
问题:
- 需要检查后端以查看用户是否在管理员组中。
- 如果他们在管理员组中,需要返回 true
我的代码:
var adminBool = false;
function CheckAdmin() {
debugger;
var a;
Direct.Report.IsAdmin(this.results, a);
debugger;
};
function results(result, constructor, c, d, e, f, g, h) {
debugger;
this.adminBool= result.adminUser; //returns bool
}
Ext.define('Ext.View.MyViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.AdministrationViewModel',
init: this.CheckAdmin(),
data: {
addNew: true,
update: true,
gridData: null,
isAdmin: this.adminBool
}
});
简介:
调用后台控制器获取管理员状态
返回布尔值
分别用 bool 更新 viewModel
ViewModel 属性“isAdmin”将与隐藏属性绑定以隐藏非管理员不需要的操作
更新:
基本上我需要一种方法来延迟“isAdmin:this.adminBool”检查到后端调用完成后。
【问题讨论】:
-
有人知道解决办法吗?
-
不是最好的解决方案,但为什么不从隐藏
unwanted actions组件开始呢?同时,您的 ext 直接异步请求将验证登录并将您的isAdmin更改为 true(如果是这样),从而显示隐藏的组件。 -
所以我确实有你提到的这个,但是当 isAdmin 变为 true 时,它不会改变更新程序以取消隐藏工具栏。
-
如果不是管理员,您是否在要隐藏的组件中设置了
bind: { hidden: '{!isAdmin}' }? -
是的,我做了,绑定:{ hidden: '!{isAdmin}' },
标签: javascript extjs viewmodel