Extjs4创建一个mixin

时间:2011-05-16 03:22:43

标签: javascript extjs extjs4

我正在尝试为Ext.grid.Panel组件创建混音。这就是我试图这样做的方式:

Ext.define('myMixin', {
    myFunc:function(){
        console.log('completed!');
    }
});

Ext.grid.Panel.mixin('newmixin','myMixin');

结果是mixin已添加到网格组件中,但值为undefined。希望我错过了一些简单的东西,但是一些帮助会非常感激。

3 个答案:

答案 0 :(得分:3)

请记住,Ext.define是异步完成的。我不知道Ext.grid.Panel.mixin是什么,因为这在ExtJS 4.0.1中不存在,但您可以尝试在Ext.define的回调参数中添加mixin:

Ext.define('myMixin', {
    myFunc:function(){
        console.log('completed!');
    }
}, function() {
    Ext.grid.Panel.mixin('newmixin','myMixin');
});

答案 1 :(得分:1)

我已经解决了这个问题,但我仍然不能100%确定原因。如果有人能解释我非常乐意将它们标记为答案。

我做了以下事情:

Ext.grid.Panel.mixin('newmixin',Ext.define('myMixin', {
    myFunc:function(){
        console.log('completed!');
    }
}));

答案 2 :(得分:0)

您是否尝试以声明方式添加mixin?

Ext.define('Path.to.MyMixin', {
    someFunc: function () {return 0;}
});

然后,在您的网格中:

Ext.define('Path.to.MyGrid', {
    extend: 'Ext.grid.Panel',
    mixins: ['Path.to.MyMixin'],
    ...
});