相关疑难解决方法(0)

有关Ext.define()中initComponent()的最佳实践

我正在使用ExtJS的新MVC时尚编写所有组件Ext.define().

无论是在内部定义属性initComponent()还是简单地设置它们,我都有点挣扎property: 42,.

是否有广泛接受的最佳做法?

initComponent()只是在必要时使用(即,当我想要一些动态或设置范围时),这使得保持功能更短并且让我有些丑陋this.并且总是使用它有利于我,我永远不必移动以前的属性initComponent()只是因为我想让它更具动感.

不幸的是,Sencha的文档并没有说明这一点,可用的例子似乎按照他们的意愿去做.

javascript extjs extjs4

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

将子组件的配置传递给父组件

通常,要定义网格类型,我会这样做:

Ext.define('MyApp.view.MyGrid', {
  extend: 'Ext.grid.Panel',
  alias: 'widget.myGrid',
  store: 'MyStore',
  columns: [...],
}
Run Code Online (Sandbox Code Playgroud)

然后我通过它的xtype,'myGrid'将它添加到容器或布局中.

我想要做的是定义一个可重用的自定义组件,它可以扩展Ext.grid.Panel或接受相同的配置(例如列),但实际上是一个包含网格和其他东西的容器.

Ext.define('MyApp.components.ContainedGrid', {
  extend: 'Ext.container.Container' //or Ext.grid.Panel, whatever works
  alias: 'widget.containedGrid',
  layout: 'card',
  items: [
    {someObject}, //doesn't matter what this is
    {aGrid}, //the grid that should receive the configs from the caller
  ],
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,此组件可以像常规Ext.grid.Panel对象一样配置,这些配置应该真正应用于items数组中定义的第二个网格.

换句话说,类似下面的内容应该呈现一个包含卡片布局的窗口,其中第二张卡片应该是网格,其中列和商店提供给容器.

Ext.create('Ext.window.Window',  {
  title: 'hi',
  layout: 'fit',
  items: {
    xtype: 'containedGrid',
    store: myStore,
    columns: [...],
  },
});
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,我只想说提供给容器的配置适用于其中一个组件,但我不知道如何执行它.有什么想法吗?

编辑: 简而言之,我要做的是创建一个像网格一样配置的组件,但实际上是一个包含网格的容器,以及其他一些东西.这个组件将被多次使用,所以我想把它打包成一个可重用的组件.

extjs extjs4

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

Extjs克隆一个面板

panel({})及其所有内容如grid,form和想要将精确克隆呈现给另一个面板是否有办法实现它..是否可以使用panel.getEl()或其他任何方式...请帮忙

extjs extjs3

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

将KeyMaps添加到视口的最佳实践

什么是创建/绑定KeyMaps到视口的最佳位置?

给出一个非常简单的Viewport,如下所示:

Ext.define('EmptyTemplate.view.Viewport', {
    extend: 'Ext.container.Viewport',
    requires:[
        'Ext.layout.container.Fit',
        'EmptyTemplate.view.Main'
    ],
    layout: {
        type: 'fit'
    },

    items: [{
        xtype: 'app-main'
    }],

    listeners: {
        afterrender: {
            fn: function(){
                // map one key by key code
                this.keyMap = Ext.create('Ext.util.KeyMap', this.el, {
                    scope: this,
                    key: Ext.EventObject.ENTER,
                    fn: function () {
                        console.log("enter pressed");
                    }
                });
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

什么是创建KeyMaps的正确方法?

extjs extjs4 extjs4.1

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

标签 统计

extjs ×4

extjs4 ×3

extjs3 ×1

extjs4.1 ×1

javascript ×1