javascript – Extjs4 mvc设计思路

我还在学习Extjs和mvc所以我有一个设计问题,我相信有人可以为我解答.我的问题是:

我有2个控制器可以处理两个不同的视图.调用两个控制器中的任何一个以基于用户类型呈现正确的视图.所以在我的情况下,如果用户管理员,那么他们将获得基于凭证的管理员视图,如果该人是标准用户,那么他们将获得标准视图.决策逻辑应该放在app.js中还是应该有另一个控制器决定调用哪个控制器?

我想的一种方式:

管理员控制器

Ext.define('adminController',{

      // handles admin 
})

标准用户控制器

Ext.define('standardController',{

      // handles standard 
})

App.js

   Ext.application({
   name: 'MTK',autocreateViewport: true,if(admin) {
       controllers: ['adminController']
     }
     else(std){
       controllers: ['standardController']
     }
});

一个想法:

管理员控制器

Ext.define('adminController',{

    // handles admin 
})

标准用户控制器

Ext.define('standardController',{

    // handles standard
})

主控制器

Ext.define('mainController',{

   if(admin){
      call adminController
   } 
   else(std){
      call standardController
   }
})
最佳答案
我不会在前端做这(或者至少太多)这个.我想你应该能够在用户登录时知道用户角色.

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

我正在使用这两种方法

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

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

我希望这能指出你正确的方向.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面