Попытался переопределить метод addRecord() вот таким образом, чтобы на деталь "адреса контрагента" нельзя было добавить адреса с одинаковыми типами. Все нормально работает, но вопрос в том - допустимо ли вот так переопределять или это плохая практика?
Добавил свой аргумент isAllowed.
addRecord: function(editPageUId, isAllowed) { if (!isAllowed) { var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "AccountAddress" }); //...фильтр esq.getEntityCollection(function(result) { if (result.collection.collection.length === 0) { //Вызываю addRecord еще раз, передав в него мой аргумент this.addRecord(editPageUId, true); } else { this.showInformationDialog("Адрес с таким типом уже существует."); } }, this); } else { this.callParent(arguments); } }
Нравится
2 комментария
Лучший ответ
29 мая 2019 11:14
Добрый день!
Допустимо.
Можно сделать еще так:
addRecord: function(editPageUId) { this.someCheckMethod(function(res){ if (res) { this.superclass.addRecord.apply(this, editPageUId); } }, this); }
Обратите внимание, что вам по вашей задаче еще нужно сделать проверку на редактирование адреса: чтобы нельзя было изменить тип на уже существующий.
29 мая 2019 11:14
Добрый день!
Допустимо.
Можно сделать еще так:
addRecord: function(editPageUId) { this.someCheckMethod(function(res){ if (res) { this.superclass.addRecord.apply(this, editPageUId); } }, this); }
Обратите внимание, что вам по вашей задаче еще нужно сделать проверку на редактирование адреса: чтобы нельзя было изменить тип на уже существующий.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать