iview-原创-《iview modal解决各种问题后的最佳实践》

工作中使用了iview-admin作为系统UI框架,在进行表单处理时,不可避免的大量使用到了modal组件。过程中遇到问题:

新建和编辑时应该使用同一个组件作为基础,这样在代码改动时更加高效。那么modal组件就需要封装到一个子组件中方便调用。这样就涉及到从父组件中触发修改子组件的modal值的修改。

父组件为Father.vue,有一个按钮点击后弹出子组件中的modal,绑定值modalFlagFather

子组件为Child.vue,modal的绑定值为modalFlagChild。

最简单的思考,在子组件中watch父组件传入的参数modalFlagFather,修改modalFlagChild,完成弹出框的打开和关闭。

踩坑1:在modal组件中使用on-ok和on-cancel事件,当触发on-ok时,无法阻止modal关闭。但是表单中有必填项,需要校验成功且接口调用成功后才关闭对话框。

原因:iview的modal组件中没有提供相关的机制。