Вопрос

Миксины в контролах

Всем доброго времени суток. Версия 7.10.

Вопрос такой: есть несколько собственных контролов, в которых повторяется один и тот же код с небольшими изменениями. Хотелось бы вынести его в миксин, чтобы не править в случае чего одновременно в нескольких местах.

Возможно ли в контролах использовать миксины, также, как и в обычных схемах? Может быть есть примеры, как правильно подключать миксин?

Сделал вот такой миксин:

 

Ext.define("Terrasoft.mixins.UsrMyMixin", {
    extend: "Terrasoft.Component",
    alternateClassName: "Terrasoft.UsrMyMixin",
 
    checkData: function(test){
console.log("ok");
    }
});

И подключил в контроле, занаследованном также от Component:

mixins: {
		UsrCheckScheduleDatesMixin: "Terrasoft.UsrCheckScheduleDatesMixin",
	},

При подключении, однако, в консоль вываливается ошибка:

file: undefined

 line: undefined

 column: undefined

 message: c is not a constructor 

Может где-то ещё что-то нужно добавить?

Нравится

3 комментария

Добрый день.

Контролы в bpm'online не поддерживают секцию mixins и код показанный на скриншоте работать не будет. Для уменьшения количества повторения кода, вы можете создать миксин или же просто модуль с методами и подключить его в define или же через- require. Затем нужные вам методы вызывать в нужном контексте используя методы call или же apply языка JavaScript. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Globa…

Ну или же создать свой базовый контрол и наследоваться от него, что менее гибко.

Терещук Сергей,

Сергей, я ориентировался вот на это: 

https://academy.terrasoft.ru/jscoresdk/source/diagram.html#Terrasoft-co…

Это контрол диаграммы. Там именно такая конструкция:

mixins: {
		connectorRemoval: "Terrasoft.ConnectorRemovalMixin"
	},

Ну и далее идёт вызов через this.mixins.connectorRemoval.init(this.getInstance());

Ну или же пользоваться создать свой базовый контрол и наследоваться от него, что менее гибко.

То есть, мне следует создать свою версию components, внести туда свои дополнения, и занаследоваться от него.

В Components тоже есть похожая конструкция с mixins: https://academy.terrasoft.ru/jscoresdk/source/component.html#Terrasoft-…

Показать все комментарии