在extjs中使用createDelegate

时间:2013-03-12 12:16:05

标签: extjs4

这是我第一次尝试将用户定义的参数传递给IE9中extjs(4.0.1)中的处理函数。我有以下代码,但它引发了一个错误,指出SCRIPT438: Object doesn't support property or method 'createDelegate'。我不确定我做错了什么。请帮忙。

Js文件:

Ext.onReady(function() {

    var appendBooleanOrInsertionIndex = 0; 
    var myButtonHandler = function(item,a, b, arg){
           alert(a + " "+ b);
        };

var myButton = new Ext.Button({
       id : 'myButton',
       //renderTo : 'mybutton',
       text : 'Save',
       handler : myButtonHandler.createDelegate(this, ['Hi', 'Kart'], appendBooleanOrInsertionIndex),
       scope : this
    });
});

2 个答案:

答案 0 :(得分:5)

Ext停止向Ext 4中的本机类原型添加逻辑。使用Ext.Function.bindExt.Function.pass

答案 1 :(得分:0)

更正后的代码如下:

Ext.onReady(function() {


    var myButtonHandler = function(a, b){//alert("-->");
           alert(a + " "+ b);
        };

        Ext.create('Ext.panel.Panel', {
            renderTo: Ext.getBody(),
            width: 800,
            height: 300,
            layout: 'column',
            title: 'Container Panel',
            //html: 'parent panel',
            items: [
                {
                    xtype: 'button',
                    id: 'mbutton',
                    text : 'My Button',
                    handler : Ext.Function.pass(myButtonHandler, ['Hi', 'Kart!!!!'])
                }
            ]
        });
});