解决方法在最后。
故事背景:
这是一次挖坑踩坑经历!
测试人员说:“哎老铁,你的功能有问题哎,你看一下。”
我:“好的”。
放下手里的事情打开浏览器,输入本地地址看看,发现:“没问题啊!”
测试一脸追命表情:“有问题啊!不信自己看!”
我(内心开始着急):“嗯!等会儿看。”
自己测了一会儿,没问题,然后去测试环境看,没问题,摸着下巴自言自语:“奇了怪了!没问题啊!”
过了几分钟,确实发现了会出现这个问题。问题是重现了,但问题的原因就是找不到!
遂,看自己优雅的代码,读框架源码,打断点,删除测试服务器代码重新pull!
自言自语:“没问题啊!我艹”。
已经很着急了!(急性子 0 0)。
根据上面的方法,最后定位到问题,是因为点击按钮的时候,框架对于确定按钮的submit事件还未绑定完成。
再经过几轮测试,发现要过一会儿,不要着急页面一刷新就点击确定,等框架把表单事件绑定完之后就没问题。
这时开始有了初步解决方案:“在点击按钮之前给他加个disabled类,这个类在CRUD生成的页面中也有同样代码。嗯~~~ 这样做。”
开始感觉问题要解决了!心态开始平稳,心率开始正常。
按照方案并且实施,解决问题!~
吐槽:
第一次正式使用FastAdmin来开发后台,我的评价是,对于中小且不复杂的项目来说,好处很多,只要你开始投入使用,那不好的地方也会接踵而来,有的是对框架不熟悉导致挖了坑,
有的是文档用错挖了坑,有的是社区回答的不对或者没回答到点上,然后照着做也挖了坑!有的是框架功能本身存在不友好的地方,稍不注意就犯错挖坑。
这些坑都得开发人员自己填。随着功能越做越多,坑也越来越多,因为不可能一开始都把所有功能都做好,都是先做好一部分功能,先使用,后续再补充或者修改部分不合理或不好用功能。
按照这个模式总结就是,它的优点就这么多,缺点随着时间推移也越来越多(相对于优点还是要少很多)。
要改的地方很多,因为生成的功能,很多是用不着的,例如:快速搜索,我说留着,偶尔用得着,产品非要删除。其它搜索项,不要的也都删掉,这些其实都是工作量。框架可以把它做成配置的。
吐槽举例:
- 社区不活跃,有问题没法即时解决,很多问题都是几年前的,而且框架更新后,那些问题根本不适用,有些连参考价值都没有。
- 扩展性不好,如果不写原生代码,框架的扩展就那些,还是不够。
- 有的功能文档没有,只有自己写原生代码,跟框架混合使用,也会遇到问题。
- 貌似有些问题要收费来着?这一点没有花太多时间去关注。
- 开发过程中发现一些不友好的点,就像控制器列表的js里面使用自定义按钮,貌似js方法要和控制器方法一致,不然会有问题,我后来改成一致就可以了。
- btn-dialog自定义界面的代码还不能随意修改,举个例子,
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
这个代码是确定按钮,其中的disabled还不能随便删除,框架绑定表单事件结束之前,点击按钮的提交方式是submit的默认提交,也就是同步提交,而不是我期望的异步提交。
出现这个问题的现象就是,本地看到的是异步,线上看到的是同步提交。本地开发环境没有问题,到了测试环境就暴露出来了,就觉得好奇怪,同一套代码,换个环境就出问题了。
最后得出结论就是开发环境由于是本地,加载js很快,测试环境配置不高,带宽也不大,公司网络也不好,我还是用的流量来测,所以就造成了框架的事件绑定还没执行完,
就点击了确定按钮,也就是btn-dialog弹出层跳转的问题
注:以上问题,只要是刚接触框架,不分年龄和开发经验,遇到的概率很大,有经验的开发可以比较快的解决,要是小白就惨了。
列一下编辑页面我们可以随便动的区域:
注意:除了红框标记的区域(可以增减),其它的都不要动!特别是刚接触FastAdmin的人,无论是否是新手!此建议很重要
最后再总结一下,要解决FastAdmin关于btn-dialog是跳转而不是弹出框的问题,就是不要把确定按钮的disabled类属性删除。
这次算是给自己之前迷之自信加深记忆吧!随手一删,自信满满,回头一看,惊喜炸弹。
最后的最后,希望FastAdmin团队越来越好,框架越来越好用。
END