图书馆bug解决【一】

时间:2022-05-16 01:51:34

背景

项目开始维护了,充满激情的我再次来到图书馆貌似这个图书馆给我的感觉就像小baby一样,只不过这个小baby小的时候我教导的不好所以导致他有很多毛病,不过没有关系我又回来了,他也正常运行了,现在让我教导他把~


Bug一【实体类型不对应】

这是API后台给我们显示的数据,从这个当中大家可以看到有一个[{}],这个表示的我们返回的数据是一个数组类型的,所以在我们前台swagger进行接收的时候我们也必须使用数组类型的,我出错的原因是因为我使用的是实体类型,所以导致最后一直接收不到。
图书馆bug解决【一】


错误实例
图书馆bug解决【一】

解决方法
声明一个数组,在angular4中我们可以使用两种方式来进行声明数组,

//这是第一种方式声明的数组
borrowDetail = new Array <BookUpdataModule>();
//第二种方式声明数组
borrowDetail:BookUpdataModule[];

Bug二【页面之间传参为空】

问题
这次报错的原因是因为突然间isbn没有传过来,真的很是让人郁闷,向后台传参数的时候一直报错,为空
解决方案
首先我们现在我们的第一个要传参的页面通过url进行传参,其实与我们在js中参数数是一样的,我们传的是isbn

this.router.navigateByUrl("book-info/" + book.isbn);

我们在接受一方使用的时候一个固定的模式去接受,在参数中传过来的参数,这句话的意思就是我们某个实体的属性接受来自传过来地址中,得到路由的详细信息,然后得到他的参数中的id,这样我们就找到了我们的isbn,

 reservation.isbn = this.activeRoute.snapshot.paramMap.get("isbn"); 

Bug三【=与==】

感觉自己敲了这么长时间的代码,都到了java还犯这样的错误,嘿嘿,还好又遇到了一次,超级开心啊,出错的原因就是见鬼了一样的给我复制,真尼玛郁闷了我就

=表示的是我们赋值,而==表示的我们用于判断是否等于,在比较运算符的时候我们使用==表示的就是左边的是否等于我们右边的,如果使用的是=表示的是我们左边的赋值与我们右边的


Bug四【显示问题】

由于我们手机端点击事件的时候按钮使用的是图片,所以导致用户看不出来自己点击了按钮,所以为了让用户体验更好,我们需要让点击按钮的时候让用户看出来,如果对于js来说很简单,但是我们前端使用的是angular所以不知道应该怎么弄,目前使用的是通过CSS选择器来改变,在项目中我们使用的【haver】


使用过程超级简单,其实就是利用haver控制我们的class中的元素,然后当我们大haver元素的时候事件其实就触发了

 <div class="change"> <li style="position:relative;"> <a href="#/workspace/book-type"><span><img src={{imgBooksUrl}} height="30" width="30%"></span><span>书城</span></a> </li> </div> 
.change li{ background-color:rgb(250, 249, 249); }
.change li:hover{ background-color:rgb(160, 235, 248); }

同类技术
出来haver有这个技术之外,css中还有其他元素也具备这个能力,不过在使用的时候他们之间有优先级,a:haver的使用是在a:link和a:visit之后,而a:active是在a:haver之后。

a:link
a:visit
a:active

总结

今天一晚上的事件解决的bug,看起来都是些小bug,我的小baby你改了不少小毛病啊,超级开心~哈哈,期待你的一步步的成长哦~!