这两天在写校准申请部分,主要就是根据检定申请的功能,简单照搬就可以了。但是中间出现了几个问题,解决过程中对原来的实现有了一个大致的了解。

选择器具

发起一个校准申请,首先需要先添加非强检器具,选择需要校准的器具。

这里涉及到了两个页面,第一个是添加校准申请的界面,另一个是选择器具的界面。

clipboard.png

点击添加器具,然后跳转到选择器具的界面:

clipboard.png

勾选上要添加的器具,然后完成选择,跳转回申请界面:

clipboard.png

这时候就会多一条数据。

这个过程中涉及到了我在一个界面选择了器具,如何让另一个界面知道的问题。

通过对原来代码的仔细阅读,理解了对象传递的过程。

clipboard.png

交互的过程其实很简单,就是直接在跳转界面的时候,将当前选中的器具数组当做参数进行传递就可以了。

clipboard.png

clipboard.png

但是这样直接传,又引发了后面参量的问题。

校准项和校准点的单位

上面获取到器具后,需要填写申请的信息。在添加校准项和校准点的时候,准确度等级的没有显示:

clipboard.png

然后通过debug,进入指令yunzhiAccuracyInput

clipboard.png

clipboard.png

所以证明ngModel未定义。然后通过调用往前找,找到了原因:

clipboard.png

这里使用的是object.accuracy,但是其实已经没有这个属性了。这是由于前面在修改不准确度的时候,将变量的名字换掉了,而修改对应字段后,调用位置没有进行相应的修改,所以就导致了这里调用错误。

clipboard.png

然后修改为object.accuracyUncertainty就行了。

这样修改后,数值正常显示了,但是单位没有显示:

clipboard.png

原因是一样的,同样是由于上次修改不准确度遗留下的问题。

clipboard.png

clipboard.png

对应修改后,问题得到解决。

查看校准能力

填写校准申请数据的时候出现了,中间可以查看校准能力,但是点击查看校准能力后,不确定度就没有了:

clipboard.png

clipboard.png

一看是不确定度,所以估计又是修改遗留的问题。所以就重点关注一下。

定位到查看的方法中

clipboard.png

有一个过滤的方法

clipboard.png

果然不出所料。然后将accuracy替换掉,问题解决。

总结

这次在编写校准申请的时候,大部分问题都出现在了前台,而前台问题中,大部分问题又都是由于上次修改不确定度导致的,又到了写php项目的时候,改了一个bug,又出现两个bug的时候了。很重要的一点就是前台没有单元测试

对比之下,这次后台基本上没有出现问题,那是因为后台有单元测试,一旦我的一个改动影响到别的模块了,那么单元测试一定通过不了。

那么,在前台没有单元测试的情况下,我们能做的就只有充分的人工测试了。

最后,又一次深刻的感受到了单元测试的重要作用。


喵先生的进阶之路
348 声望21 粉丝

引用和评论

0 条评论