Всем доброго времени суток. Версия 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
Может где-то ещё что-то нужно добавить?
Нравится
Добрый день.
Контролы в 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-…