温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ng-zorro-antd@0.7.1 修复月份选择bug

发布时间:2020-07-20 11:13:48 来源:网络 阅读:322 作者:youthfighter 栏目:web开发

背景

公司开发框架使用的是angular5,为了提高开发效率,将ng-zorro-antd库引入项目。在开发过程中,发现该库的月份选择有问题(ng-zorro官网可复现),具体表现如下:

ng-zorro-antd@0.7.1 修复月份选择bug

由上图可以看出,月份选择出现了两个三月、两个五月、两个十二月。这个bug不仅出现在月份选择,即便是日期选择,也可以先选月份,依然会存在这个bug。

bug产生的原因

翻看了ng-zorro-antd的源码,发现是生成月份列表的时候,月份计算错误。相关代码如下图:

ng-zorro-antd@0.7.1 修复月份选择bug

开发者的想法应该是,通过setMonth()来依次获取每个月份的时间。而问题恰恰出在这里。如果当前是Wed Jul 31 2019 18:00:00 GMT+0800 (中国标准时间),那么生成一月份的数据(setMonth(0))没有问题,是Thu Jan 31 2019 18:00:00 GMT+0800 (中国标准时间),但是生成二月份的数据(setMonth(1))的时候回出问题,由于2月份只有28天,因此,代码的执行结果是Sun Mar 03 2019 18:00:00 GMT+0800 (中国标准时间),实际上已经是三月份了。

也就是说,每个月的29、30、31号,月份选择控件可以稳定的复现该bug。

解决bug

在node_modules下找到ng-zorro-antd文件夹,打开其下的ems5文件夹下的antd.js文件,修改14387、14388及14423行相关的代码。如下图所示:

ng-zorro-antd@0.7.1 修复月份选择bug

ng-zorro-antd@0.7.1 修复月份选择bug

重启项目可解决该bug。


在最新版本的ng-zorro-antd@8.1.2中,该bug已解决。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI