发表于: 2019-11-07 19:20:11

1 1064


今天完成的事情

1.angular任务  登陆/请求数据实现步骤笔记完善    

2.angular任务  自定义管道实现步骤笔记完善  

3.angular任务  数据分页实现步骤笔记完善         


今天遇到的问题

1.angular查询数据定义的方法,之前定义如下

         //以下时进行搜索的判断,防止搜索时某个值为undefined报错

         this.dataObj.type == undefined ? '' : this.dataObj.type;
         this.dataObj.status == undefined ? '' : this.dataObj.status;

         //不知道什么缘故,原本通过
         let start = this.startDate ? new Date(this.startDate).getTime() : '';这里是将时间的格式进行转换为时间戳格式

         let end = this.endDate ? new Date(this.endDate).getTime() + 86399999 : ''; // + 86399999后可以搜索同一天


        // 以下进行url传值,将搜索的条件传递到url中,页面初始化的时候获取url请求数据
        this.rou.navigate(['/page/article'], {
            queryParams: this.dataObj
        })



但是现在获取到的时间是到搜索时间当天凌晨+实时时间,而之前只是获取到搜索时间当天凌晨,现在的数据不知道怎么获取到了实时时间,导致搜索功能失效,后来通过大佬的教导,定义了一个函数来解决这个问题,函数如下:

        function transform(dt) {
                return new Date((dt).getFullYear() + '-' + ((dt).getMonth() + 1+ '-' + (dt).getDate()).valueOf();
        }


方法修改如下:

         this.dataObj.startAt = this.dataObj.startAt ? transform(this.dataObj.startAt) : '';
         this.dataObj.endAt = this.dataObj.endAt ? transform(this.dataObj.endAt) + 86399999 : ''; //能搜索同一天的数据(1天是86400000ms)

         //这里是获取到搜索日期当天凌晨的时间,并转换为时间戳格式(计算1970/1/1到当前搜索时间凌晨的毫秒)
        function transform(dt) {
                return new Date((dt).getFullYear() + '-' + ((dt).getMonth() + 1+ '-' + (dt).getDate()).valueOf();
        }

        // 以下进行url传值,将搜索的条件传递到url中,页面初始化的时候获取url请求数据
        this.rou.navigate(['/page/article'], {
            queryParams: this.dataObj
        })


开始使用是没有问题的,但是当我时间搜索第二次时,就会报错,大佬又告诉了我原因以及解决办法,毕竟我确实找不出来问题所在

原来问题是使用transform函数将日期格式转换成时间戳,然后再次搜索时间,它又会取转换原本就已经转换成功的日期导致报错,而解决办法就是通过if判断,当它是日期格式时就进行转换,不是就不转换,if判断语句如下:

        function transform(dt) {
            if (typeof dt !== 'number') {
                return new Date((dt).getFullYear() + '-' + ((dt).getMonth() + 1+ '-' + (dt).getDate()).valueOf();
            } else {
                return dt
            }
        }


同时大佬还告诉我以下两行代码格式是错的,没有生效,而我删除后也没报错,我记得之前必须要的

         this.dataObj.type == undefined ? '' : this.dataObj.type;
         this.dataObj.status == undefined ? '' : this.dataObj.status;


今天的收获

1.今天进行笔记整理的同时,也对代码进行了优化重构,发现自己的代码还是又很多问题的,例如有三个接口地址是一模一样的,我却分别定义了三次

2.然后就是我的代码复用性太低,之前定义了一堆的变量,每次使用时还得定义一个对象进行获取,后来直接定义一个对象,将变量换成key值,代码的复用性大大地得到了提高


明天的计划

1.完成新增数据/编辑数据/删除数据 笔记的整理

2.新建路由守卫/登陆验证 笔记



返回列表 返回列表
评论

    分享到