Добрый день, коллеги. Необходимо добавить кнопку на панель визирования (помимо approve и reject).

Как я заметил данная панель геренируется по модулю ApprovalDashboardItemViewModel, но модули замещать нельзя. Как можно выкрутиться из такой ситуации? Кто-нибудь сталкивался с такой необходимостью?

Нравится

1 комментарий
Лучший ответ

Замещать как и расширять модули можно, если делать это правильно.

Вот пример замещения модуля BaseCommunicationViewModel.

Создаем новый модуль, в данном случае будем замещать (override, можно использовать расширение extend(вместо override заменить)). Затем, где нужно, вызываете реализованный вами модуль.

Например в детали: 

define("AppFormCommunicationDetail", ["ScBaseCommunicationViewModel"],



Реализация модуля:

define("ScBaseCommunicationViewModel", ["BaseCommunicationViewModel"],
function() {
	Ext.define("Terrasoft.ScBaseCommunicationViewModel", {
		override: "Terrasoft.BaseCommunicationViewModel",
		alternateClassName: "Terrasoft.ScBaseCommunicationViewModel",
		getLinkUrl: function(value) {
			//нужная реализация метода
		}
	});
	return Terrasoft.ScBaseCommunicationViewModel;
});

 

Замещать как и расширять модули можно, если делать это правильно.

Вот пример замещения модуля BaseCommunicationViewModel.

Создаем новый модуль, в данном случае будем замещать (override, можно использовать расширение extend(вместо override заменить)). Затем, где нужно, вызываете реализованный вами модуль.

Например в детали: 

define("AppFormCommunicationDetail", ["ScBaseCommunicationViewModel"],



Реализация модуля:

define("ScBaseCommunicationViewModel", ["BaseCommunicationViewModel"],
function() {
	Ext.define("Terrasoft.ScBaseCommunicationViewModel", {
		override: "Terrasoft.BaseCommunicationViewModel",
		alternateClassName: "Terrasoft.ScBaseCommunicationViewModel",
		getLinkUrl: function(value) {
			//нужная реализация метода
		}
	});
	return Terrasoft.ScBaseCommunicationViewModel;
});

 

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