У меня есть мастер с каждым шагом формы.При нажатии следующего мастера вызывает form.validate()
, а затем переключается на следующую карту.Validate выполняет все виды бизнес-валидации + базовую валидацию форм.
У меня есть абстрактный суперкласс для всех форм, который просто делает this.getForm().isValid()
, и подклассы могут переопределить это, чтобы разместить свою специфическую логику.Недостатком этого в extjs4 является то, что вам все еще нужно реализовать это в классах представления ur, таким образом, разделение mvc не поддерживается.
Теперь, что если в extjs4 мы изменили валидацию с метода на событие?, Для чеговсе подклассы должны определять обработчик, а класс мастера при нажатии кнопки «Далее» просто запускает это событие?
Это служит двум целям:
- , оно сделает вызов асинхронным
- Вы можете реализовать свою бизнес-логику в классах контроллера.
Недостатком здесь является то, что нет способа предоставить реализацию по умолчанию, которая может использоваться совместно, как реализация по умолчанию в базовом классе.Даже если у вас есть базовый класс, реализующий обработчик по умолчанию для этого события, обратная сторона этой модели не похожа на совместное использование на основе наследования, вы не можете решить отключить это поведение, не вызывая this.callParent(arguments)
.
Так что отсутствуетЧасть здесь - как возможно иметь возможность повторного использования, подобного наследованию, в парадигме, основанной на событиях?