Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Extjs4创建mixin_Javascript_Extjs_Extjs4 - Fatal编程技术网

Javascript Extjs4创建mixin

Javascript Extjs4创建mixin,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我正在尝试为Ext.grid.Panel组件创建混合。这就是我尝试这样做的方式: Ext.define('myMixin', { myFunc:function(){ console.log('completed!'); } }); Ext.grid.Panel.mixin('newmixin','myMixin'); 这样做的结果是一个mixin已添加到网格组件中,但该值是未定义的。希望我错过了一些简单的东西,但是如果能得到一些帮助,我将不胜感激。我已经解决

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

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

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

这样做的结果是一个mixin已添加到网格组件中,但该值是
未定义的
。希望我错过了一些简单的东西,但是如果能得到一些帮助,我将不胜感激。

我已经解决了这个问题,但我仍然不能100%确定原因。如果有人能解释,我很乐意把他们作为答案

我做了以下工作:

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

我已经解决了这个问题,但我仍然不能百分之百确定原因。如果有人能解释,我很乐意把他们作为答案

我做了以下工作:

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

记住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');
});

记住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');
});

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

Ext.define('Path.to.MyMixin', {
    someFunc: function () {return 0;}
});
然后,在网格中:

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

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

Ext.define('Path.to.MyMixin', {
    someFunc: function () {return 0;}
});
然后,在网格中:

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

我认为原因是,在原始代码中,您试图使用字符串“myMixin”引用myMixin:Ext.grid.Panel.mixin('newmixin','myMixin');但是您只使用诸如“myMixin”之类的字符串定义类定义——在定义之后,您引用它的对象引用:myMixin(不带引号),我认为原因是在原始代码中,您试图使用字符串“myMixin”引用myMixin:Ext.grid.Panel.mixin('newmixin','myMixin');但是您只能使用诸如“myMixin”之类的字符串定义类定义——在定义之后,您将引用它的对象引用:myMixin(不带引号)