检查html结构
- 打开界面,右击查看源代码,先确认界面上的字段是否在form元素中。例如下图代码所示。EC的校验是在FORM表单中通过指令
g-validator
引入校验文件的。
<form autocomplete="off" name="forma" g-validator="TestCaseNewHot107_Default" validator-config-key="$wms" data-invalid-msg="tooltipMessenger" role="form" g-tabindex >
- 需要注意的是,在复杂页面配置的时候注意FORM表单之间没有嵌套。
检查校验文件
- 检查完html,可以确认下加载页面的时候是否有引入校验文件。此时可以按住F12快捷键或者是右击【检查】进入开发者模式。
- 选择面板source,按【ctrl+P】打开校验文件,即上述html中指令
g-validator
方法中的值。本文档为TestCaseNewHot107_Default
。如果打开文件无格式化,可以通过下图三进行格式化js操作。
- 确认js文件中是否有配置的校验文件的字段,且校验字段的property是否和html中的name一致。【备注:未配置视图级一般为下面的G类型校验】
* 检验类型为G(平台原先模式),name字段与校验属性property一致,即【对象.属性】
* 检验类型为M(EC架构默认模式),主表name字段与校验属性property一致,即【属性】,子表name字段由校验文件combineName和property组合,即【子对象属性.属性名】
* 例如本例子中的商品名称代码,例子的校验类型为G类型
{
property: "testCaseNewHot107.itemName",
ruleName: "require",
message: "Require.testCaseNewHot107.itemName"
}
- 选择面板source,按【ctrl+P】打开校验文件,格式为【entity-业务对象_default.js】文件,此文件为校验对应的提示信息文件。例如本例子中的商品名称会生成如下文件。
"Require.testCaseNewHot107.itemName": "【商品名称】不能为空"
简单调试步骤
- 选择面板source,按【ctrl+P】打开页面的js文件,此处以新增页面为例子:格式【业务对象AddBsCtrl.JS】文件
- 点击【ctrl+F】查找的save方法,进入到保存共用方法
_commonSaveOrUpdateTestCaseNewHot107
中找到_this.formVerify($scope.formArrays);
这行代码,此代码为表单校验的代码。
- 鼠标悬浮到
$scope.formArrays
。根据上面的html结构form
元素的name
属性,可获得form
对象:$scope.forma
。检查form
属性是否有校验字段,如若不存在,则需要检查HTML结构是否有误。
- 在scope中打开forma,接着打开
$error
中的require
对象,可以看到里面的未通过的校验。(备注:下图为在console中输出截图)
- 如果还无法看到对应的校验,可打开校验文件
/static/app/framework/directive/GillionValidatorConstructor.js
文件中根据校验类型断点对应校验的方法,查看校验是否有触发,如若触发是哪里导致校验不一致。
- 如若校验未触发,表示没有正常创建该校验的
ControlValidator
,可断点调试GillionValidatorConstructor.js
的applyValidator
方法(建议用条件断点)