标签: extjs-mvc

EXTJS 4 - 全局异常监听器

我有一种情况,我ajax从各种Ext gridpanel等服务器向服务器发出请求.在管理区域.

如果没有活动,则登录用户将被注销.5分钟这是正常的.

在这种情况下,服务器将重定向发送回403登录页面.

现在我插入一个:

listeners: {
    exception: function(proxy, response, operation, eOpts) {
        if (response.status == '403')
            window.location = 'login';
    }
}
Run Code Online (Sandbox Code Playgroud)

对于每个store's代理都有点矫枉过正.

有人可以很友好,让我知道如何为ExtJS和服务器之间的所有通信添加一个监听器?

我正在使用MVC应用程序架构,所以它可能是一个controller.js或一个内衬app.js.

谢谢

javascript extjs extjs4 extjs-mvc

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

ExtJS:需要什么?

我一直试图找出Ext JS 4中的要求,我似乎无法得出一个合理的答案.假设我有以下代码:

app.js

Ext.Loader.setConfig({
  enabled: true
});

Ext.Loader.setPath('Ext.ux', 'examples/ux');

Ext.application({
  name: 'Test',
  appFolder: 'app',
  controllers: ['TheController'],
  requires: ['Test.Utils', 'Test.Utils2'],  // I don't think this does anything... couldn't find this option for Ext.application
  launch: function() {
    Ext.create('Ext.Viewport', {
      layout: 'border',
      items: [{
        xtype: 'thegrid',
        region: 'center',
        title: 'blah!'
      }]
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

应用程序/控制器/ TheController.js

Ext.define('Test.controller.TheController', {
  extend: 'Ext.app.Controller',
  models: ['TheModel'],
  stores: ['TheStore'],
  views: ['TheGrid'],
  init: function() {
  }
});
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/ TheGrid.js

Ext.define('Test.view.TheGrid', {
  extend: 'Ext.grid.Panel',
  alias: 'widget.thegrid',
  requires: ['Test.store.TheStore'],
  store: …
Run Code Online (Sandbox Code Playgroud)

javascript extjs extjs4 extjs-mvc extjs4.1

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

将ExtJS MVC控制器附加到DOM元素,而不是组件

有没有办法使用Ext.app.Controller control()方法,但传入DOM查询?我有一个包含标准链接的页面,并希望为它们添加一个单击处理程序,即使它们不是作为Ext Buttons创建的.

我试过了

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

    init: function() {
        console.log("init");
        this.control({
            'a': {
                click: this.changeTab
            }   
        });
    },

    changeTab: function() {
        alert("new tab!");
    }   
});
Run Code Online (Sandbox Code Playgroud)

但是点击链接不会触发警报.

有没有办法用this.control指定CSS选择器?或者它只适用于组件?

extjs extjs4 extjs-mvc

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

ExtJS 4 MVC多个视图实例和子/子控制器的困难

我在ExtJS 4中遇到了MVC模式的问题.至少,我认为我有.通过这个问题与多个人接触,并在Sencha论坛上多次发布,我现在转向更广泛的受众,希望得到一个灯泡或确认.

问题

您的应用程序可以打开许多不同的视图,其中一些视图本身就是迷你应用程序.另外,用户可能希望打开视图的多个并发副本.

此应用程序是单页客户端Javascript应用程序.

ExtJS 4 MVC模型希望您在Application类中定义所有控制器.然后在应用程序加载时初始化这些控制器.控制器跟踪视图,模型和存储.

多次初始化控制器A时,比如创建多个视图副本,最终会有两个引用相同数据存储的视图,并在功能上将重复事件发送到应用程序事件总线.

我通过向Component和Controller添加新的原型方法来重构我的应用程序,以允许a)子控制器(我的一些控制器变得非常庞大)和b)专门为它们使用的视图定义存储.模型仍然可以在控制器上定义,只是为了方便处理程序使用,如果你需要做一些事情,比如从服务器上获取记录.

我对MVC的理解会让我相信模型与View更直接相关,而不是Controller.我假设ExtJS 4决定将存储(我认为可以看作是更经典模型的包装器)附加到控制器,以鼓励重复使用加载的数据,并优化远离同一类的多个副本实例化.但是,在我看来,如果打算让用户可以使用许多视图实例,则无法执行此操作.根据我的想法,拥有许多实例是OO框架中的一个重要选项,因此我为什么要逆转趋势并在一些Ext基类上实现原型.(谢谢Ext.implement!).

有没有办法让一个视图的多个并发实例使用开箱即用的MVC类并使用提供的setter,getter等来加载不同的数据

extjs4 extjs-mvc

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

如何将工具栏中的元素与左,中,右对齐

如何在工具栏中左,中,右三个区域?我知道我可以使用->触发所有后续物品的右对齐容器,但中心呢?

extjs extjs4 extjs-mvc extjs4.1

13
推荐指数
2
解决办法
4万
查看次数

如何配置(调试)ExtJS EventPipe/Events

我正在开发一个相对较大的ExtJS MVC应用程序,大约有40个控制器,> 100个商店,> 100个模型等等.我没有遵循可能的MVC方式严格,所以我实现了一个懒惰的控制器初始化,它首先在需要时初始化控制器,因此存储.我也没有在任何控制器中注册任何视图,但这只是因为我不需要.

现在,表单(在Ext.window.Window中打开)大约需要1-2秒,直到它们出现,同时在一个相当小的项目中立即弹出相同的表单.所以形式(布局)不能成为我带来事件的问题.但我真的不知道最好的方法是什么,或者已经有一个很好的教程如何做到这一点.我想最好对它进行分析,看看整个管道需要多长时间(不仅仅是EventPipe本身).

活动结构:

大多数事件都是通过control()负责的控制器注册的.所有其他活动最多注册{ single: true }.窗口在重用时关闭并重新实例化.

profiling extjs extjs4 extjs-mvc extjs4.1

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

解释extjs的MVC架构

我使用Javascript创建了一个小型数独游戏.现在我试图将该javascript代码转换为extjs(4.1.1a)代码.我已经浏览了文档以了解MVC架构,但对我来说,它似乎并不像我是初学者那么详细.

有人可以根据我的Sudoku应用程序解释Extjs的MVC架构吗?

我的数独应用程序代码的设计如下:

在此输入图像描述

上述设计的描述如下:

  • container (blue) --> parent panel (grey) --> child panel (red)

  • " 父母小组 "是九个,每个" 父小组 "有九个" 儿童小组 ".

  • " 父面板 "和" 子面板 " 的HTML元素是使用for循环动态生成的.

  • 我在" 儿童小组 " 上写过诸如KeyDown活动和活动等活动.click

  • 我也写过一些函数

    checkGroup()        - >检查每个"父面板"是否有任何重复的数字 checkVertical()      - >在"容器"的每个垂直行中检查重复的数字 checkHorizo​​ntal() - >检查每个水平线的"容器"用于重复的数字


编辑:( 未完成和非结构化的代码)

app.js(主js文件)

Ext.application({
     name: 'Game',
     appFolder: 'app',  
     controllers: ['Sudoku']     
});
Run Code Online (Sandbox Code Playgroud)

controller('app'文件夹 - >'controller'文件夹 - > Sudoku.js)

//By using 'controller', trying to call 'view' here …
Run Code Online (Sandbox Code Playgroud)

extjs extjs4 extjs-mvc extjs4.1

10
推荐指数
2
解决办法
7943
查看次数

始终在Extjs中显示Slider的提示文字

在Extjs 4.1.1a中,如何保持tip text滑块始终可见?

目前,tip text只要用户拖动滑块的条,就可以看到它.
我搜索了文档,但找不到任何相关的概念.

如果没有记录或不可能,请解释我如何tip text手动创建.该tip text应沿着滑块的条移动,它不应该克服或隐藏的任何其它相邻部件.

这是我生成一个简单滑块的代码:

xtype:'slider',
cls: 'sliderStyle',
width: "80%",
id: 'slider',
value: 6,
minValue: 1,
maxValue: 12,
useTips: true,

tipText: function(thumb){
    var months = ['','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    var value = Ext.String.format(months[thumb.value]);
    return value;
},
Run Code Online (Sandbox Code Playgroud)

问题2:至少可以显示tip text悬浮在滑块上的时间吗?

PS:我在这里也问了同样的问题.

编辑1: 我也用两个相邻的按钮(<>)移动滑块的搜索条.所以,必须注意的是,如果我用相邻的按钮移动搜索条,那么它tip text也应该移动.

编辑2:当在滑块或相邻按钮上悬停时,提示文本应该是可见的.

答案:http://jsfiddle.net/WdjZn/1/

javascript extjs extjs4 extjs-mvc extjs4.1

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

如何在extjs4中创建超链接?

我在extjs4工作.我一直陷入困境,我必须在extjs4中创建一个超链接.我一直在搜索extjs4中创建超链接但我没有得到任何解决方案.实际上我必须放入箱子一个超链接,点击该链接后,我将在extjs4中显示另一个页面.实际上我也没有在extjs4中获得这个活动.如何在extjs4中使用超链接.我用这种方式......

{
      xtype: 'panel',
      html:'<a href="second.js">Second page</a>',
}  
Run Code Online (Sandbox Code Playgroud)

请给我一些建议......

extjs dom-events extjs4 extjs-mvc extjs4.1

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

扩展ExtJS 4 MVC应用程序中的控制器

我按照MVC结构构建我的ExtJS 4应用程序.我想制作一个可扩展的网格MyGrid,它具有一些我可以重复使用的功能.因此,我猜,它应该有自己的控制器,它也是扩展的,因此功能是继承的.这怎么做得好?

在下面的代码中,我将说明如何使用MyExtendedGrid扩展控制器MyGrid.我意识到我正在覆盖MyGrid控制器中的init函数,因此它永远不会被调用.问题是通过从MyExtendedGrid init调用MyGrid中的"super" init来解决问题,还是合并控制对象?这是在MVC精神中这样做的正确方法吗?如果是这样,怎么样?

controller/MyGrid.js:

Ext.define('App.controller.MyGrid', {
    extend: 'Ext.app.Controller',
    refs: [
        {
            ref: 'myGridView',
            selector: 'mygrid'
        }
    ],
    init: function() {
        var me=this;
        me.control({
            'mygrid textfield[name=searchField]': {
                change: function() {
                    var view = me.getMyGridView();
                    // Do something with view
                }
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

controller/MyExtendedGrid.js:

Ext.define('App.controller.MyExtendedGrid', {
    extend: 'App.controller.MyGrid',
    views: [
        'grids.MyExtendedGrid'],
    refs: [
        {
            ref: 'myExtendedGridView',
            selector: 'myextendedgrid'
        }
    ],
    init: function() {
        var me=this;
        me.control({
            'myextendedgrid': {
                // Some control code …
Run Code Online (Sandbox Code Playgroud)

extjs4 extjs-mvc

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

标签 统计

extjs-mvc ×10

extjs4 ×10

extjs ×8

extjs4.1 ×6

javascript ×3

dom-events ×1

profiling ×1