我有一个向导,每个步骤都有一个表单。单击下一个向导调用form.validate()
,然后切换到下一张卡。 Validate执行各种业务验证+基本表单验证。
我有一个抽象的超类,只适用于this.getForm().isValid()
的所有表单,并且子类可以覆盖它以放置它们的特定逻辑。在extjs4中有这个缺点,你仍然需要在你的视图类中实现它,因此不支持mvc分离。
现在如果在extjs4中我们将验证从一个方法更改为一个事件?为什么所有子类都应该定义一个处理程序,而点击下一个向导类就会触发该事件?
这有两个目的:
这里的缺点是无法提供可以像基类中的默认实现一样共享的默认实现。即使您有基类实现该事件的默认处理程序,该模型的缺点与基于继承的共享不同,您不能通过不调用this.callParent(arguments)
来决定关闭该行为。
所以这里缺少的部分是如何在基于事件的范例中实现类似继承的重用?