小编rea*_*gan的帖子

Extjs4 mvc设计思路

我还在学习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)

javascript model-view-controller extjs extjs-mvc extjs4.1

5
推荐指数
1
解决办法
320
查看次数

extjs4获取控制器中的视图实例?

我试图在控制器中获取我的视图实例.我怎样才能做到这一点.我尝试这样做的主要原因是我在视图中有一个网格,我想要禁用,直到从组合框中进行选择,因此我需要访问视图的实例.

救命?

我的控制器:

Ext.define('STK.controller.SiteSelectController', {
    extend: 'Ext.app.Controller',

    stores: ['Inventory', 'Stacker', 'Stackers'],
    models: ['Inventory', 'Stackers'],
    views: ['scheduler.Scheduler'],

    refs: [{
        ref: 'stackerselect',
        selector: 'panel'
    }],

    init: function () {
        this.control({
            'viewport > panel': {
                render: this.onPanelRendered
            }
        });
    },
    /* render all default functionality */
    onPanelRendered: function () {
        var view = this.getView('Scheduler'); // this is null?
    }
});
Run Code Online (Sandbox Code Playgroud)

我的看法:

Ext.Loader.setConfig({
    enabled: true
});
Ext.Loader.setPath('Ext.ux', '/extjs/examples/ux');
Ext.require([
    'Ext.ux.grid.FiltersFeature',
    'Ext.ux.LiveSearchGridPanel']);

var filters = {
    ftype: 'filters',
    autoReload: false,
    encode: false,
    local: true
}; …
Run Code Online (Sandbox Code Playgroud)

javascript model-view-controller extjs extjs4 extjs4.1

1
推荐指数
1
解决办法
1万
查看次数