这两天在写校准申请部分,主要就是根据检定申请的功能,简单照搬就可以了。但是中间出现了几个问题,解决过程中对原来的实现有了一个大致的了解。
选择器具
发起一个校准申请,首先需要先添加非强检器具,选择需要校准的器具。
这里涉及到了两个页面,第一个是添加校准申请的界面,另一个是选择器具的界面。
点击添加器具,然后跳转到选择器具的界面:
勾选上要添加的器具,然后完成选择,跳转回申请界面:
这时候就会多一条数据。
这个过程中涉及到了我在一个界面选择了器具,如何让另一个界面知道的问题。
通过对原来代码的仔细阅读,理解了对象传递的过程。
交互的过程其实很简单,就是直接在跳转界面的时候,将当前选中的器具数组
当做参数进行传递就可以了。
但是这样直接传,又引发了后面参量的问题。
校准项和校准点的单位
上面获取到器具后,需要填写申请的信息。在添加校准项和校准点的时候,准确度等级的没有显示:
然后通过debug,进入指令yunzhiAccuracyInput
中
所以证明ngModel
未定义。然后通过调用往前找,找到了原因:
这里使用的是object.accuracy
,但是其实已经没有这个属性了。这是由于前面在修改不准确度的时候,将变量的名字换掉了,而修改对应字段后,调用位置没有进行相应的修改,所以就导致了这里调用错误。
然后修改为object.accuracyUncertainty
就行了。
这样修改后,数值正常显示了,但是单位没有显示:
原因是一样的,同样是由于上次修改不准确度遗留下的问题。
对应修改后,问题得到解决。
查看校准能力
填写校准申请数据的时候出现了,中间可以查看校准能力,但是点击查看校准能力
后,不确定度就没有了:
一看是不确定度,所以估计又是修改遗留的问题。所以就重点关注一下。
定位到查看的方法中
有一个过滤的方法
果然不出所料。然后将accuracy
替换掉,问题解决。
总结
这次在编写校准申请的时候,大部分问题都出现在了前台,而前台问题中,大部分问题又都是由于上次修改不确定度
导致的,又到了写php项目的时候,改了一个bug,又出现两个bug的时候了。很重要的一点就是前台没有单元测试
。
对比之下,这次后台基本上没有出现问题,那是因为后台有单元测试,一旦我的一个改动影响到别的模块了,那么单元测试一定通过不了。
那么,在前台没有单元测试的情况下,我们能做的就只有充分的人工测试了。
最后,又一次深刻的感受到了单元测试
的重要作用。