Я создал компонент Ext.Mixin и хотел бы вызвать его функцию из другого компонента. Как мне это сделать? Должно быть очень очевидно, но я не могу видеть прямо сейчас.
РЕДАКТИРОВАТЬ:
Ext.define('ABC.mixin.MyMixin', {
extend: 'Ext.Mixin',
mixinConfig: {
after: {
},
before: {
initComponent: 'init'
}
},
init: function () {
let me = this;
myfunction();
},
myfunction: function () {
//do stuff
}
}
Как мне позвонить myfunction()?
Когда вы включаете mixin в компонент, все функции, предлагаемые mixin, включаются в сам компонент. Поэтому, когда у вас есть ссылка на созданный компонент, вы не можете вызвать функцию на самом компоненте.
Ext.define('ABC.mixin.MyMixin', {
extend: 'Ext.Mixin',
myfunction: function () {
//do stuff
}
});
Ext.define('ABC.view.MyView', {
mixins: ['ABC.mixin.MyMixin'],
// ...other config stuff
});
let myView = Ext.create('ABC.view.MyView'); // concreate Object of the class ABC.view.MyView
myView.myfunction(); // we can call the function of the mixin on the Object directly.
Для получения дополнительной информации см. Документацию ExtJs
Документы API, похоже, предоставляют необходимую вам информацию. Вы просто включаете свой микшинг в компонент, который вам нужен, например:
Ext.define('ABC.view.MyComponent', {
mixins: ['ABC.mixin.MyMixin'],
initComponent() {
this.myfunction();
this.callParent();
}
});
И из области компонента вызовите функции mixin, которые вам нужны