标签: extjs3

在ExtJS中调用超类方法的更好方法

我读过的所有ExtJS文档和示例都建议调用这样的超类方法:

MyApp.MyPanel = Ext.extend(Ext.Panel, {
  initComponent: function() {
    // do something MyPanel specific here...
    MyApp.MyPanel.superclass.initComponent.call(this);
  }
});
Run Code Online (Sandbox Code Playgroud)

我已经使用这种模式很长一段时间了,主要的问题是,当你重命名你的类时,你还必须改变所有对超类方法的调用.这很不方便,经常我会忘记,然后我必须追查奇怪的错误.

但是看完来源Ext.extend(),我发现,这不是我可以使用superclass()super()该方法Ext.extend()增加了原形:

MyApp.MyPanel = Ext.extend(Ext.Panel, {
  initComponent: function() {
    // do something MyPanel specific here...
    this.superclass().initComponent.call(this);
  }
});
Run Code Online (Sandbox Code Playgroud)

在这个代码中,将MyPanel重命名为其他东西很简单 - 我只需更改一行.

但我怀疑......

  • 我没有在任何地方看到过这种情况,旧的智慧说,我不应该依赖于无证件的行为.

  • 我没有在ExtJS源代码中找到这些superclass()supr()方法的单独使用.为什么在你不打算使用它们时创建它们?

  • 也许这些方法在某些旧版本的ExtJS中使用但现在已被弃用?但它似乎是一个非常有用的功能,你为什么要弃用呢?

那么,我应该使用这些方法吗?

javascript extjs extend superclass extjs3

29
推荐指数
3
解决办法
4万
查看次数

如何修改字符串过滤器中输入的值

我的网格中有3列的字符串过滤器.这工作正常.在第三列,其dataindex是abc我想修改输入的值.

例如,如果我按0然后它过滤了所有具有0的数据.我想按'否'而不是0来过滤.同样,我想使用"是"而不是1来过滤数据1.

我的代码用于创建过滤器.

this.filters = new Ext.ux.grid.GridFilters({
    filters: this.filter,
    local: true,
    autoReload: false,
});
this.features = [this.filters];
this.plugins = [this.filters];
Run Code Online (Sandbox Code Playgroud)

插入过滤器的代码.

gridEl.filter.push({
    type: header.getAttribute("FILTER"),
    dataIndex: header.getAttribute("DATAINDEX"),
    encode: false,
    metaID: header.getAttribute("M"),
});
Run Code Online (Sandbox Code Playgroud)

感谢帮助.

javascript string extjs filter extjs3

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

如何让extjs组合框像普通的html选择框一样?

ExtJS提供了一个花哨的组合框,它具有许多功能 - 提前输入,允许随机输入文本,隐藏下拉列表中所有未加入已输入文本的条目.

我不想要这些功能.我想要一个选择框,其行为几乎与人们期望普通选择框在vanilla html中完全相同.

我确实希望它绑定到数据存储,我确实想要组合框附带的所有其他extjs配置好东西.我只是不希望用户/测试人员遇到一个选择框时会吓坏他们,这些选择框打破了他们现有的这些工作方式的心理范式.

那么如何才能让extjs组合框更像选择框呢?或者我是否完全使用了错误的小部件?

extjs extjs3

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

带有自定义按钮的ExtJs消息框

如何使用自定义按钮显示ExtJS消息框.

我想要一个带有自定义消息的消息框以及"取消"和"取消激活"按钮.请提出一些想法.

buttons: [{
    text: "Cancel",
    handler: function () {
        Ext.MessageBox.hide();
        //submitTicketForm();
    }
},{
    text: "Deactivate",
    handler: function () {
        Ext.MessageBox.hide();
    }
}],
Run Code Online (Sandbox Code Playgroud)

我正在使用它,但没有得到任何按钮.

extjs extjs3

18
推荐指数
2
解决办法
3万
查看次数

headerCt.getMenu()的替代是什么; 在Ext JS 3中

我正在使用Ext JS 3,我需要得到我的列标题的菜单.我试图使用网格后跟.

我的代码有点像

listeners: {
    afterrender: function() {                                        
        var menu = this.headerCt.getMenu();// wrong
    }
}
Run Code Online (Sandbox Code Playgroud)

但是headerCt在Ext JS 3中显然不可用.我可以使用哪些其他可能的选项?我没有从文档中得到任何想法.

javascript extjs extjs3

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

如何在ExtJS组合框中添加空项?

我想添加和清空项目(显示值为空,项目高度保持正常)到Ext.form.ComboBox.我在下面提到了2个链接来配置我的组合框,但它仍然没有显示空项目:

这是我的代码:

this.abcCombo = new Ext.form.ComboBox({
    name : 'abcCombo',
    hiddenName : 'abcCombo-id',
    fieldLabel : "My Combobox",
    width : 250,
    editable : false,
    forceSelection : true,
    mode : 'local',
    triggerAction : 'all',
    valueField : 'id',
    displayField : 'fullName',
    store : new Ext.data.JsonStore({
        fields : ['id', 'fullName']
    }),
    tpl : '<tpl for="."><div class="x-combo-list-item">{fullName}&nbsp;</div></tpl>'
});
Run Code Online (Sandbox Code Playgroud)

组合框存储的数据将在Ajax请求(即数据项中的3个项)之后加载.组合框只有3项(不是我预期的4项).你对我的问题有任何想法吗?!非常感谢!

combobox extjs extjs4 extjs3 extjs-stores

17
推荐指数
2
解决办法
3万
查看次数

如何在Ext Js中自动选择(显示)组合框的第一个值?

这是我的组合框

{
    xtype: 'combo', 
    fieldLabel: LANG.LOGIN_LANG,
    id : 'lang', 
    store: [
        ['tr','Türkçe'],
        ['ru','???????'],
        ['en','English']
    ],
    mode: 'local',
    triggerAction: 'all',
    selectOnFocus:true
},
Run Code Online (Sandbox Code Playgroud)

combobox extjs extjs3

16
推荐指数
3
解决办法
5万
查看次数

如何强制ExtJS NumberField中的小数显示达到一定的精度?

我有一个表单,从JSON NumberField获取类型的值float.如果值恰好是整数,则不显示小数位.我想一直显示2位小数.这有配置选项吗?

这是我的声明:

items: [
    { 
        fieldLabel: 'Net Sales',
        name: 'netSales',
        allowBlank:false,
        decimalPrecision:2
    },
Run Code Online (Sandbox Code Playgroud)

extjs extjs4 extjs3

14
推荐指数
3
解决办法
4万
查看次数

如何在ExtJs Component中加载React app/Lib

我们正在使用Extjs 3.1,我们正在尝试将reactjs集成到.我们有供应商库,它有react,reacr-dom,redux和其他库被打包并包含在脚本中.

这是我的extjs代码

var CompositeViewer = Ext.extend(Ext.BoxComponent, {
    itemId: 'CompositeViewer',
    requires: [
        'ReactDOM' //my lib file name is vendor.lib.js
    ],
    initComponent: function() {
        Ext.apply(this, {
            autoEl: {
                tag: 'div',
                cls: 'normalize'
            }
        });
        CompositeViewer.superclass.initComponent.apply(this, arg);
    },
    onRender: function(ct, position) {
        CompositeViewer.superclass.onRender.apply(this, arg);
        console.log(ReactDOM); //OFCOURSE ReactDOM is undefined  
        /// HOW TO LOAD/Render REACT APP AND OTHER LIBS
    },
    beforeDestroy: function() {
        CompositeViewer.superclass.onDestroy.apply(this, arg);
    }
});
Run Code Online (Sandbox Code Playgroud)

如何将reactjs/javascript库加载到extjs容器中需要帮助.

编辑:澄清更多.

  1. 由于我没有从cdn加载外部依赖项(react,redux等)的选项,我如何单独捆绑它和什么类型(commonjs,umd或var)
  2. 如何捆绑我的应用程序,以便ExtJS可以导入它(作为单独的lib ??)

extjs extjs3 reactjs webpack

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

ExtJS(JavaScript)模块设计模式最佳实践

我对模块设计模式的最佳实践有疑问.下面的代码是我们编写一些组件的方式的一个例子(我们使用ExtJs,但这不应该太重要).我们构建了很多这样的组件,我知道这与最佳实践完全不符.有任何想法清理代码?

Ext.ns("TEAM.COMPONENT");

function Foo() {

    // Private vars
    var privateNumber=0, myButton, privateInternalObject;

    var numberField = new Ext.form.NumberField({
        label : 'A NumberField!',
        listeners : {
            'change' : function(theTextField, newVal, oldVal) {
                console.log("You changed: " + oldVal + " to: " + newVal);
            }
        }
    });

    // Some private methods
    function changeNumField(someNumber) {
        numberField.setValue(someNumber);
    }

    // Some public methods
    this.publicFunctionSetNumToSomething() {
        changeNumField(privateNumber); 
    }

    /**
     * Initializes Foo
     */
    function init() {
        // Do some init stuff with variables & components
        myButton  = …
Run Code Online (Sandbox Code Playgroud)

javascript oop design-patterns extjs extjs3

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