Extjs4 mvc设计思路

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)

sra*_*sra 2

我不会在前端这样做(或者至少不会做太多)。我想您应该能够在用户登录时知道用户角色。

对我来说,我这样做,但我必须说我有一个更复杂的 ACL,我不会用后端拒绝任何访问的模块或视图来打扰用户。

我正在使用这两种方法:

  • 成功登录后重新加载/重定向到应用程序视图(后端!)。服务器知道用户会话要回传什么
  • 成功登录后返回配置,其中包含下一步需要的信息(这可能只是一个控制器或更多类)

这两种方法都会减少代码、加快加载速度并简化调试

我希望这能为您指明正确的方向。