rea*_*gan 5 javascript model-view-controller extjs extjs-mvc extjs4.1
我还在学习Extjs和mvc所以我有一个设计问题,我相信有人可以为我解答.我的问题是:
我有2个控制器可以处理两个不同的视图.调用两个控制器中的任何一个以基于用户类型呈现正确的视图.所以在我的情况下,如果用户是管理员,那么他们将获得基于凭证的管理员视图,如果该人是标准用户,那么他们将获得标准视图.决策逻辑应该放在app.js中还是应该有另一个控制器决定调用哪个控制器?
我想的一种方式:
管理员控制器
Ext.define('adminController', {
// handles admin
})
Run Code Online (Sandbox Code Playgroud)
标准用户控制器
Ext.define('standardController', {
// handles standard
})
Run Code Online (Sandbox Code Playgroud)
App.js
Ext.application({
name: 'MTK',
autoCreateViewport: true,
if(admin) {
controllers: ['adminController']
}
else(std){
controllers: ['standardController']
}
});
Run Code Online (Sandbox Code Playgroud)
另一个想法:
管理员控制器
Ext.define('adminController', {
// handles admin
})
Run Code Online (Sandbox Code Playgroud)
标准用户控制器
Ext.define('standardController', {
// handles standard
})
Run Code Online (Sandbox Code Playgroud)
主控制器
Ext.define('mainController', {
if(admin){
call adminController
}
else(std){
call standardController
}
})
Run Code Online (Sandbox Code Playgroud)
我不会在前端这样做(或者至少不会做太多)。我想您应该能够在用户登录时知道用户角色。
对我来说,我这样做,但我必须说我有一个更复杂的 ACL,我不会用后端拒绝任何访问的模块或视图来打扰用户。
我正在使用这两种方法:
这两种方法都会减少代码、加快加载速度并简化调试
我希望这能为您指明正确的方向。