Extjs4 Создание миксина - PullRequest
1 голос
/ 16 мая 2011

Я пытаюсь создать микширование для Ext.grid.Panel компонентов. Вот как я пытался это сделать:

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

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

В результате этого миксин был добавлен к компонентам сетки, но значение равно undefined. Надеюсь, я упустил что-то простое, но некоторая помощь будет высоко ценится.

Ответы [ 3 ]

3 голосов
/ 30 июня 2011

Помните, что Ext.define завершается асинхронно.Я не знаю, что такое Ext.grid.Panel.mixin, так как его нет в ExtJS 4.0.1, но вы можете попробовать добавить миксин в параметре обратного вызова Ext.define:

Ext.define('myMixin', {
    myFunc:function(){
        console.log('completed!');
    }
}, function() {
    Ext.grid.Panel.mixin('newmixin','myMixin');
});
1 голос
/ 16 мая 2011

Я решил проблему, но я все еще не уверен на 100% в причине. Если кто-то может объяснить, я более чем рад отметить их как ответ.

Я сделал следующее:

Ext.grid.Panel.mixin('newmixin',Ext.define('myMixin', {
    myFunc:function(){
        console.log('completed!');
    }
}));
0 голосов
/ 07 января 2014

Вы пытались добавить свой миксин декларативно?

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

А затем, в вашей сетке:

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